Java8 -- Optional

boolean isPresent():与obj != null()一样;调用get()前要调用isPresent()检查,不然会报错

Optional的三种构造方式:

Optional.of(obj):obj不能为null,不然报npe

Optional.ofNullable(obj):obj为null时得到Optional.empty(),非null就调用Optional.of(obj)

Optional.empty()

orElse(null):存在即返回,无则提供默认值

orElseGet(() -> fetchAUserFromDatabase());:存在即返回,无则由函数来产生

ifPresent(System.out::println);:存在就做点什么(不要if(obj.isPresent()) System.out::println;)

obj.map(o -> o.getNames()).orElse(Collections.emptyList()):如果names有,就返回,没有就返回默认值

map可以无限级联:obj.map(o -> o.getNames()).map(name -> name.toUpperCase()).orElse(Collections.emptyList())

Guava -- Optional

Optional.of(T):获得一个Optional对象,其内部包含了一个非null的T数据类型实例,若T=null,则立刻报错

Optional.absent():获得一个Optional对象,其内部包含了空值

Optional.fromNullable(T):将一个T的实例转换为Optional对象,T的实例可以为空

boolean isPresent():如果Optional包含的T实例不为null,则返回true;若T实例为null,返回false

T get():返回Optional包含的T实例,该T实例必须不为空;否则,对包含null的Optional实例调用get()会抛出一个IllegalStateException异常

T or(T):若Optional实例中包含了传入的T的相同实例,返回Optional包含的该T实例,否则返回输入的T实例作为默认值

T orNull():返回Optional实例中包含的非空T实例,如果Optional中包含的是空值,返回null,逆操作是fromNullable()

Set<T> asSet():返回一个不可修改的set,该Set中包含Optional实例中包含的所有非空存在的T实例,且在该Set中,每个T实例都是单态,如果Optional中没有非空存在的T实例,返回的将是一个空的不可修改的Set。

最新文章

  1. 机器学习基础——梯度下降法(Gradient Descent)
  2. 第3章 Linux常用命令(6)_关机重启命令
  3. Nginx ssl证书部署
  4. Android源码
  5. swfupload提示“错误302”的解决方法
  6. 64位Win7下编译hadoop 1.2.1问题解决
  7. C#语言各种集合介绍
  8. OOP 7大原则
  9. C#中获取程序集版本号的方法
  10. GUID,UUID
  11. 归并排序算法(C#实现)
  12. 自动开机和自动关机设定方法(包括linux和windows)
  13. html中显示xml
  14. AutoIt 函数学习之----WinWaitActive
  15. Tri_integral Summer Training 8 总结
  16. 不用SWIG,Go使用C++代码的方式
  17. win7访问xp共享访问不了
  18. 深度学习caffe:Ubuntu16.04安装指南(1)
  19. Mybatis入门(一)之操作数据库
  20. 48.Odoo产品分析 (五) – 定制板块(3) – 修改文件和报告(1)

热门文章

  1. 转载Spring Data JPA 指南——整理自官方参考文档
  2. Gsview裁剪EPS文件
  3. wex5打包详解
  4. eclipse导入myeclipse中的项目(如何把Webroot改为WebContent)
  5. Js 将图片的绝对路径转换为base64编码(2)
  6. 使用jvisualvm远程监控tomcat(阿里云ECS)
  7. BZOJ1787 [Ahoi2008]Meet 紧急集合[结论题]
  8. 我说CMMI之二:CMMI里有什么?--转载
  9. Tarjan求点双连通分量
  10. sqlite3创建自增主键,以及清空表使自增列归零