创建Optional 对象
1. 声明一个空的Optional
正如前文已经提到,你可以通过静态工厂方法Optional.empty,创建一个空的Optional
对象:
Optional<Car> optCar = Optional.empty();
2. 依据一个非空值创建Optional
你还可以使用静态工厂方法Optional.of,依据一个非空值创建一个Optional对象:
Optional<Car> optCar = Optional.of(car);
如果car是一个null,这段代码会立即抛出一个NullPointerException,而不是等到你
试图访问car的属性值时才返回一个错误。
3. 可接受null的Optional
最后,使用静态工厂方法Optional.ofNullable,你可以创建一个允许null值的Optional
对象:
Optional<Car> optCar = Optional.ofNullable(car);
方 法/描 述
flatMap 如果值存在,就对该值执行提供的mapping 函数调用,返回一个Optional 类型的值,否则就返回一个空的Optional 对象
get 如果该值存在,将该值用Optional 封装返回,否则抛出一个NoSuchElementException 异常ifPresent 如果值存在,就执行使用该值的方法调用,否则什么也不做
isPresent 如果值存在就返回true,否则返回false
map 如果值存在,就对该值执行提供的mapping 函数调用
of 将指定值用Optional 封装之后返回,如果该值为null,则抛出一个NullPointerException异常
ofNullable 将指定值用Optional 封装之后返回,如果该值为null,则返回一个空的Optional 对象
orElse 如果有值则将其返回,否则返回一个默认值
orElseGet 如果有值则将其返回,否则返回一个由指定的Supplier 接口生成的值
orElseThrow 如果有值则将其返回,否则抛出一个由指定的Supplier 接口生成的异常
reference:《Java 8实战(Java 8 in Action) 》.Raoul-Gabriel Urma,Mario Fusco,Alan Mycroft