Optional 为java8引入,参数可以为null,主要解决空指针问题,应用举例为:
public class OptionalTest {
//java8 引入Optional,解决空指针问题
public static void main(String[] args) {
OptionalTest optional = new OptionalTest();
Integer value1 = null;
Integer value2 = new Integer(8);
System.out.println("value1----->" + value1);
// Optional.ofNullable - 允许传递为 null 参数
Optional<Integer> a = Optional.ofNullable(value1);
// Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException
Optional<Integer> b = Optional.of(value2);
System.out.println("俩参数和为:"+optional.sum(a, b));
}
public Integer sum(Optional<Integer> a, Optional<Integer> b) {
// Optional.isPresent - 判断值是否存在
System.out.println("a=====" + a);
System.out.println("参数一存在:" + a.isPresent());
System.out.println("参数二存在:" + b.isPresent());
// Optional.orElse - 如果值存在,返回它,否则返回默认值
Integer value1 = a.orElse(new Integer(0));
// Optional.get - 获取值,值需要存在
Integer value2 = b.get();
return value1 + value2;
}
}
其运行结果为:
value1----->null
a=====Optional.empty
参数一存在:false
参数二存在:true
俩参数和为:8