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 |