什么是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值;