JAVA8-Java8的流式编程-Optional的使用
本文最后更新于:September 2, 2022 pm
JAVA8 是一个有里程碑的一个版本,提供了很多的新特性。Java 8 是oracle公司于2014年3月发布,可以看成是自Java 5 以来最具革命性的版本。Java 8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性。
目录
创建对象
判空处理
当被判断的值为null时,并不会进行报错处理。
1 |
|
为空设置默认值
当被判断值为空时,可以给值设置为一个默认值。
1 |
|
当确定某一个对象不是空时,可以使用Optional的静态方法of来把数据封装成Optional对象。
1 |
|
⚠️注意:使用此方法,必须确定传入的对象非空!!!
封装空对象为Optional。如果某对象为空,可以使用Optional的静态方法empty来进行封装成Optional对象。
1 |
|
判断是否有值
与之相关的有两个方法,一个是判断是否有值;另一个是如果有值的话需要干什么(Consumer)。
1 |
|
获取值
分为不安全获取,即如果对象为空,那么获取时,会抛出异常;安全获取,即在对象为空时,可以自定义的操作。
不安全获取
1 |
|
抛出异常:
1 |
|
安全获取
有三种方式:orElse()、orElseGet()、orElseThrow()。
orElse:当数据为空,则为其赋值一个默认值。
1 |
|
orElseGet:当数据不为空才进行获取值的操作。如果为空则根据传入的参数来创建对象作为默认值返回。
1 |
|
orElseThrow:如果数据不为空,则获取该数据;如果为空,则抛出自定义异常。
1 |
|
过滤
使用filter方法对数据进行过滤处理,如果原本有数据,但是不符合条件的,会变成一个无数据的Optional对象。
1 |
|
转换
map方法可以让我们对数据进行转换,并且转换得到的数据也还是被Optional包装好的,保证了我们的使用安全。
1 |
|
本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/d7b19672.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!