Java8-Optional类-ofNullable与orElseThrow

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

你可能感兴趣的:(Java8)