Optional
-
了解Optional
- 包:java.util.optional
- Optional可以看成一个迷你型容器,用来装一个对象
- 用来解决空指针异常
- JDK1.8建议,当一个方法设计形参时, 或者返回结果时,这和类型可以选择Optional
-
使用Optional类
-
创建一个Optional类
1. static <T> Optional<T> empty() // 创建一个空的Optional类的对象,相当于null 2. static <T> Optional<T> of(T value) // 创建一个非空Optional类的对象 3. static <T> Optional<T> ofNullable(T value) // 创建一个不确定是否非空的Optional类对象
-
取出Optional包装的对象
1. static <T> Optional<T> of(T value) //对应of方法用,要求必须非空 2. T orElse(T other) // 对应ofNullable方法,如果容器中不为空,为容器中的值,否则为备胎值 3. T orElseGet(Supplier<? extends T> other) // 对应OfNullable方法,如果容器非空返回容器中对象,否则返回供给型接口提供的对象 4. <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) //如果非空,返回容器对象,否则返回指定异常
-
其他方法
1. Optional<T> filter(Predicate<? super T> predicate) //过滤 2. <U> Optional<U> map(Function<? super T,? extends U> mapper) //映射 3. void ifPresent(Consumer<? super T> consumer) //存在即操作 4. boolean isPresent() //判断是否存在
-