Java8 第三部分:利用Java8的各种特性更有效地改善代码质量(二)

创建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
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值