前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

一起学习Java8之Optional(java_opt)

qiguaw 2024-10-28 17:29:35 资源文章 19 ℃ 0 评论

1 什么是Optional

Optional是Java 8中提供的容器类,用于解决NPE问题。Optional的定义如下:



通过源码可以看到Optional中有两个属性,分别是EMPTYvalueEMPTY默认初始化一个value值为nullOptional对象。value就是Optional容器存储数据的属性。注意Optional的构造器是private,所以不能通过new创建对象的方式来创建Optional对象。

对应还基本数据类型的Optional,分别是OptionalIntOptionalDoubleOptionalLong

2 创建

  • empty:获取一个value为nullOptional对象
  • of:创建一个不能为nullOptional对象,该方法接收一个参数作为value值,该参数不能为null


  • ofNullable:创建一个可以为nullOptional对象,该方法接收一个参数作为value值,该参数可以为null


如果该方法中传入的是一个null值,那么得到的Optional对象将和Optional.empty()相等。

3 获取值

  • get:用于获取Optional中的value的值


4 判断空值

  • isPresent:判断Optional中value属性是否为null,如果不为null,则返回true,反之则返回false


  • ifPresent:该方法接收一个Comsumer类型参数,用于判断值是否存在,如果存在就执行Comsumer操作


5 操作值

  • filter:过滤值。该方法接收一个Predicate参数,如果Optional中的值满足参数条件,就返回该Optional,否则返回空的Optional,如果原来Optional中值为null,新生成的Optional中值也为null


  • map:操作值返回新值。该方法接收一上Function类型对象,接收Optional中的值,生成一个新值包装成Optional并返回,如果原来Optional中值为null,新生成的Optional中值也为null


  • flatMap:接收一个Function参数,该Function参数返回一个Optional对象


5 操作空值

  • orElse:当Optional中的值为null时,返回该方法接收的参数


  • orElseGet:该方法接收一个Supplier参数,用于在Optional中的值为null时返回Supplier生成的值


  • orElseThrow:该方法接收一个Supplier参数,该Supplier生成一个异常,用于在Optional中的值为null时抛出该异常


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表