Optional
Optional : 包含一个引用,这个引用为null时称为引用缺失
-
Optional.absent() 无参,创建引用缺失的Optional实例
-
Optional.fromNullable() 参数为引用实例,创建指定引用的Optional实例,若引用为null则表示缺失
-
Optional.of() 参数为引用实例,创建指定引用的Optional实例,若引用为null则快速失败
-
isPresent() 无参,如果Optional包含非null的引用(引用存在),返回true,为空返回false
-
or() 参数为引用实例同类型的具体对象,返回Optional所包含的引用,若引用缺失,返回指定的值
-
get() 返回所包含的实例,它必须存在,通常在调用该方法时会调用isPresent()判断是否为null
-
栗子:
public class OptionalDemo {
public static void main(String[] args) {
//创建引用缺失的Optional实例
Optional<Object> absent = Optional.absent();
Integer value1 = null;
Integer value2 = 10;
//创建指定引用的Optional实例,若引用为null则表示缺失
Optional<Integer> a = Optional.fromNullable(value1);
//创建指定引用的Optional实例,若引用为null则快速失败
Optional<Integer> b = Optional.of(value2);
System.out.println(sum(a, b));
System.out.println(Optional.fromNullable(value1).or(0) + Optional.of(value2).get());
}
private static Integer sum(Optional<Integer> a, Optional<Integer> b) {
/*isPresent()
*如果Optional包含非null的引用(引用存在),返回true,为空返回false
*/
System.out.println(a.isPresent());
System.out.println(b.isPresent());
//返回Optional所包含的引用,若引用缺失,返回指定的值
Integer value1 = a.or(0);
//返回所包含的实例,它必须存在,通常在调用该方法时会调用isPresent()判断是否为null
Integer value2 = b.get();
return value1 + value2;
}
}