JAVA Optional类用法分享
Optional在JAVA中被定义为一个容器类,更确切的说只存一个元素的容器。
containerobjectwhichmayormaynotcontainanon-nullvalue.
Optional类结构Optional属性
Optional类中包含两个属性:
类属性:EMPTY对象属性:value
EMPTY属性用来存放一个value为null的Optional对象。
value属性用来存放非null对象。
Optional方法
Optional的有两个构造方法,都被private修饰。
privateOptional(){
this.value=null;
}
privateOptional(Tvalue){
this.value=Objects.requireNonNull(value);
}
无参构造方法用来初始化EMPTY。有参构造方法用来初始化非null对象。
因为构造方法被修饰为私有的,Optional想要实例化对象只能通过类方法调用。Optional提供三个类方法。
empty:返回value为null的Optional对象of:返回value非null的Optional对象ofNullable:value的值根据参数是否为null返回对应的Optional对象
publicstaticOptional empty(){ Optional t=(Optional )EMPTY; returnt; } publicstatic Optional of(Tvalue){ returnnewOptional<>(value); } publicstatic Optional ofNullable(Tvalue){ returnvalue==null?empty():of(value); }
实例方法介绍
| 方法 | 参数类型 | 返回类型 | 说明 |
|---|---|---|---|
| get | 无 | T | value为null抛出NoSuchElementException异常 |
| isPresent | 无 | boolean | |
| ifPresent | Consumer | void | |
| filter | Predicate | Optional |
|
| map | Function | Optional | |
| flatMap | Function> | Optional | |
| orElse | T | T | |
| orElseGet | Supplier | T | |
| orElseThrow | Supplier |