Java 8 Optional类介绍及其源码

什么是Optional对象

使用Optional对象的好处

源码及示例

参考资料

什么是Optional对象

Java 8中所谓的Optional对象,即一个容器对象,该对象可以包含一个null或非null值。如果该值不为null,则调用isPresent()方法将返回true,且调用get()方法会返回该值。

另外,该对象还有其它方法:

如可以使用orElse()方法给Optional对象设定默认值(当值为null时,会使用默认值);

使用ifPresent()方法来执行一段代码(当值不为null时,执行代码段)。

Optional主要被用于Java 8的Stream中,简单举个例子:

package optional; import java.util.Optional; import java.util.stream.Stream; public class Snippet { public static void main(String[] args) { Stream<String> names = Stream.of("Lamurudu", "Okanbi", "Oduduwa"); Optional<String> startswl = names.filter(name -> name.startsWith("L")).findFirst(); //判断是否不为null if(startswl.isPresent()){ System.out.println(startswl.get()); } //if值为null:打印“null”;if值不为null:打印原值 System.out.println(startswl.orElse("null")); //if值不为null,执行Lambda表达式 startswl.ifPresent(name -> { String s = name.toUpperCase(); System.out.println(s); }); } }

 

使用Optional对象的好处

减少NullPointerException异常

写出更加优雅的代码

 

源码及示例

Optional类的属性和方法如下:

我们一个个看,先看两个成员属性;

成员属性

如下,一个是EMPTY常量,即存放空值的Optional对象,另一个是value,即被存放的值,可为null或非null值;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2872627c8a70bbbf1de4be24541a0ac7.html