当我们写代码的时候经常会碰见nullpointer,所以在很多情况下我们需要做各种非空的判断。JDK8中引入了optional,他是一个包装好的类,我们可以把对象传入optional对象中,接下来就可以在optional中进行安全的消费
一般使用的都是optional的方法ofNullable,这样当对象为null的时候会顺利执行
举一个简单的例子
String a="null";
//把a封装至optional中
Optional<String> optionala=Optional.ofNullable(a);
//消费对象
optionala.ifPresent(x-> System.out.println(x));
这里推荐使用ofNullable,不推荐使用of,文档中介绍如果使用of并且空值的话会抛出 NoSuchElementException – 如果不存在任何值
public static <T> Optional<T> ofNullable(T value) { return value == null ? empty() : of(value); }
还推荐使用orElseGet与orElseThrow,如果存在默认值且value为空则会直接返回默认值,当然两者都为空的时候还是会抛出错误
public T orElseGet(Supplier<? extends T> other) { return value != null ? value : other.get(); }
使用例子
String a="null"; Optional<String> optionala=Optional.ofNullable(a); a = optionala.orElseGet(() -> "abc"); System.out.println(a);
a = optionala.orElseThrow(()->new RuntimeException("a为空"));
optional也可以像stream一样有中间操作:过滤filter,map
标签:ofNullable,java,Optional,value,写写,optionala,null,optional From: https://www.cnblogs.com/kun1790051360/p/17928843.html