当前位置: 首页 > news >正文

做网站 微信开发前景杭州软件制作

做网站 微信开发前景,杭州软件制作,大宗商品现货电子交易平台,网站建设服务器配置文章目录 1. Optional简介2. 常用的接口2.1 常用接口简单使用2.1.1 创建的常用方法2.1.2 获取值的常用方法2.1.3 判定的常用方法2.1.4 判定后的操作方法2.2 map方法介绍 2.2 其他方法2.2.1 Filter 方法2.2.2 FlatMap 方法 3. 常用的实例4. 总结 1. Optional简介 Optional是在ja… 文章目录 1. Optional简介2. 常用的接口2.1 常用接口简单使用2.1.1 创建的常用方法2.1.2 获取值的常用方法2.1.3 判定的常用方法2.1.4 判定后的操作方法2.2 map方法介绍 2.2 其他方法2.2.1 Filter 方法2.2.2 FlatMap 方法 3. 常用的实例4. 总结 1. Optional简介 Optional是在java8中引入的一个新的类主要解决的问题就是空指针异常NullPointerException 原文的翻译(百度翻译,本人英文短板)一个容器对象它可能包含也可能不包含非null值。如果存在值isPresent将返回true。如果没有值则该对象被认为是空的isPresent返回false。 提供了取决于所包含值是否存在的其他方法如orElse如果不存在值则返回默认值和ifPresent当存在值时执行操作。 这是一个基于价值的类程序员应该将相等的实例视为可互换的不应该使用实例进行同步否则可能会发生不可预测的行为。例如在将来的版本中同步可能会失败。 这里我理解的核心作用就是可以通过 isPresent() 方法来辅助对对象判空然后通过 map(), orElse() ifPresent() 等方法的结合使用大大的缩减代码中冗长的if判断。 2. 常用的接口 先介绍一下常用所有的接口 注意1. 此列表是列出了本人觉得有意义的接口不是全部。2. 当前jdk版本为17,其他版本可能会没有一些方法例如or() 方法在jdk1.9中增加的接口名称简要作用描述OptionalT empty()构建一个空的Optional 对象OptionalT of(T value)构建一个非空的Optional 对象,如果为空则报错OptionalT ofNullable(T value)构建一个Optional 对象允许为空T get()获取一个泛型的对象值如果值为空则报错boolean isPresent()判空如果不为null 则为 trueboolean isEmpty()判空如果为null 则为 trueifPresent(Consumer)传递一个接口函数对当数据不为空的时候执行这个函数ifPresentOrElse(Consumer, Runnable)两个参数, 第一个是不为空的时候执行的第二个是为空的时候执行的。都是接口函数。OptionalT filter对对象的一个过滤OptionalU map(Function)转换方法OptionalU flatMap(Function转换方法常用与多层转换一层OptionalT or(Supplier)当得到对象为空的时候根据接口函数创建一个新的Optional对象T orElse(T)当得到对象为空的时候获取一个指定泛型对象T orElseThrow()不为空 返回对象为空 则NoSuchElementExceptionT orElseThrow(Supplier)不为空 返回对象为空 则指定异常 2.1 常用接口简单使用 下面是常用接口的一些简单的演示2.1.1 创建的常用方法 // 1. 构建一个空的 Optional 对象没有任何问题 OptionalObject empty Optional.empty();// 2. 构建一个非空的 Optional 对象没有任何问题OptionalObject aa Optional.of(123);// 3. 构建一个空的 Optional 对象直接报错 会报错 of不允许为空OptionalObject bb Optional.of(null);// 4. 构建一个空的 Optional 对象没有任何问题OptionalObject cc Optional.ofNullable(null);// 5. 构建一个非空的 Optional 对象没有任何问题OptionalObject dd Optional.ofNullable(123); 2.1.2 获取值的常用方法 OptionalObject cc Optional.ofNullable(null); // 1. 如果为空的时候获取值就会直接报错 Object o cc.get(); // 2. 如果对象为空则获取 or 中的 get 方法的值否则则获取cc的 get 方法中的值 Object o1 cc.or(() - Optional.ofNullable(123)).get(); // 3. 如果对象为空则直接获取的是 123, orElse()中的参数是非空的。 如果对象不为空则直接获取到对象的值 Object o2 cc.orElse(123); // 4. 如果对象为空则获取 or 中的 get 方法的值否则则获取cc的 get 方法中的值 Object o3 cc.orElseGet(() - Optional.ofNullable(123)); 2.1.3 判定的常用方法 OptionalObject cc Optional.ofNullable(null); // 1. 存在则返回true boolean present cc.isPresent(); // 2. 为null返回true boolean empty cc.isEmpty();2.1.4 判定后的操作方法 OptionalObject cc Optional.ofNullable(null); // 1. 如果对象不为空则执行方法体的内容否则没有任何操作 cc.ifPresent(item-{System.out.println(不为空则执行我item); });// 2. 如果对象不为空则执行方法体的内容否则没有任何操作 cc.ifPresentOrElse(item-{System.out.println(不为空则执行我item); },()-{System.out.println(为空则执行我); }); 2.2 map方法介绍 map 方法的使用跟 Stream 中的map方法一样我的理解这里面的所有的接口方法与 Stream 中重名的用法都是一样的Data public static class User{private String name;private Integer age; } Test void getMapTest(){User user new User();user.setName(123);OptionalUser optionalUser Optional.of(user);// 1. 直接获取 user 对象的 name 的值这里 map 是当用户不为空的时候执行的OptionalString name optionalUser.map(User::getName);System.out.println(name.isEmpty()); // 输出 falseOptionalUser optionalUser2 Optional.ofNullable(null);// 2. 直接获取 user 对象的 name 的值这里 map 是当用户不为空的时候执行的OptionalString name2 optionalUser2.map(User::getName);System.out.println(name2.isEmpty()); // 输出 true } 2.2 其他方法 其他方法 2.2.1 Filter 方法 filter 此方法为的是过滤OptionalPath p uris. stream().filter(uri - !isProcessedYet(uri)).findFirst() .map(Paths::get); 我这里基本上没有用过感觉是没有使用场景的。 2.2.2 FlatMap 方法 flatMap: 此方法我理解是拆箱转换 例如把 StreamOptionalT 转换为 OptionalT StreamOptionalT os .... StreamT s os.flatMap(Optional::stream)3. 常用的实例 TODO 这里后面再不吧暂时也没有太合适的例子4. 总结 Optional 是java8中引入的它提供了一种更优雅和安全的方式来处理可能为空的值。主要通过 or ,orElse , ifPresent 等函数式方法来优雅的判空以及非空后的执行操作这里可以减少多层的 if 判断使代码变的优雅但是弊端使用 函数式 方法会降低代码的可读性。并且还需要对 Lambda 有一定的了解才行。
http://www.hkea.cn/news/14554071/

相关文章:

  • 武进网站建设价格东莞公司有哪些
  • 263网站建设怎么样企业网站优化的三层含义
  • 产品网站怎样做外部链接百度能收录的免费网站
  • 房地产网站开发wordpress统计访客
  • 顺德哪家做网站建设网站要注意什么
  • 网站建设流程资讯做基础工程分包应上什么网站
  • 做视频网站都需要什么做的好的排版网站
  • 文明农村建设网站电脑如何做网站空间
  • 建设企业网站包含什么电商知识网
  • 什么网站可以看女人唔易做360免费建站软仵下载
  • 中医医院网站建设需求做aa视频网站
  • 帮人做网站赚钱吗沧州建设网站公司
  • 网站开发简介苏州做网站的专业公司
  • 川畅科技联系 网站设计涟水县住房和城乡建设局网站
  • 网站群建设系统index放WordPress哪个目录
  • 重庆 网站建设大全福利营销技巧和营销方法
  • 网站安全检测太原网站建设需求多嘛
  • 深圳做网站(龙华信科)鼓楼网站开发
  • 有做机械工装的网站吗音乐网站开发环境描述
  • 石家庄 外贸网站建设浙江网站推广
  • 深圳 网站建设 公司企业网站建设的一般要素包括6
  • 外贸网站关键词网站制作案例效果
  • 贵阳百度做网站电话做盗市相关网站
  • 宜兴经济开发区人才网湖南网站建设seo优化
  • 广东企业网站建设永久免费的电销外呼系统
  • 红番茄 网站点评免费咨询医生妇科医生
  • 网站开发雷小天wordpress注册邮件问题
  • 网站建设依据什么法律188旅游网站源码下载
  • 创建网站的免费软件国内销售管理系统需求分析
  • 青岛市住房和城乡建设局网站查询旅游公司的网站怎么做