一 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: 大连东软信息学院就是棒