到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google在著名的Guava项目引入了Optional类,通过检查空值的方式避免空指针异常。受到Google的启发,Optional类已经成为Java 8类库的一部分。
Optional 类(java.util.Optional) 是一个容器类,它可以保存类型T的值,代表这个值存在。或者仅仅保存null,表示这个值不存在。如果值存在,则isPresent()方法会返回true,调用get()方法会返回该对象。
Optional提供很多有用的方法,这样我们就不用显式进行空值检测。
创建Optional类对象的方法:
示例:
@Test
public void test1(){
String star = "kuki";
star = null;
// 创建一个可为空的实例
java.util.Optional<String> optional = java.util.Optional.ofNullable(star);
// 若start为空,则使用以下方案
String newStar = "kuki2";
String orElse = optional.orElse(newStar);
System.out.println("orElse = " + orElse);
}
也就时提供了一个备用方案,若传入的数据为null,则使用备用方案。