Java有关Optional的使用

vampire 2020年09月15日 17次浏览

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()
          //判断是否存在