一 Optional

1.Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。

2.Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

3.Optional 类的引入很好的解决空指针异常。

1.ofNullable

如果为非空,返回 Optional 描述的指定值,否则返回空的 Optional。

public static <T> Optional<T> ofNullable(T value) {
return value == null ? empty() : of(value);
}


2.orElseThrow

如果存在该值,返回包含的值,否则抛出由 Supplier 继承的异常

public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {
if (value != null) {
return value;
} else {
throw exceptionSupplier.get();
}
}


3.实例



/**
* @Author yqq
* @Date 2021/4/15 21:50
* @Version 1.0
*/
public class OfNullableDemo {
public static void main(String[] args) throws NullException {
String str=null;
Optional.ofNullable(str)
.orElseThrow(() -> new NullException("大连东软信息学院就是棒"));
}
}
//自定义异常
class NullException extends Exception{
public NullException(){
}
public NullException(String msg){
super(msg);
}
}
//Exception in thread "main" yqq.Lambda.Optional.ofNullable.NullException: 大连东软信息学院就是棒