Java8 Optional用法

1.实例

Optional.empty():// 创建空的Optional
Optional.of(object); // object不允许为null
Optional.ofNullable(object); // object允许为null

2. 方法

get()
// 获取optional中的对象,当optional 容器为空时报错

isPresent()
// 判断optional是否为空,为空返回false,否则返回true

ifPresent(Consumer c)
// optional不为空,则将optional中的对象传给Comsumer函数

orElse(T other)
// optional为空默认返回 other

orElseGet(Supplier other)
// optional为空默认使用Supplier函数生成默认值other

orElseThrow(Supplier exception)
// optional为空默认抛出异常

filter(Predicate p)
// 如果p的结果为true,则返回原本的optional,否则返回空的optional

map(Function<T, U> mapper)
// 映射对象

flatMap(Function<T, Optional< U>> mapper)
// 将对象映射成另外一个optional

3.使用

// 将对象放入Optional
Optional studentOptional = Optional.ofNullable(student);

// 是否为空
studentOptional.isPresent();

// 为空抛异常
Student student = studentOptional.orElseThrow(Exception::new)
Student student = studentOptional.orElseThrow(() -> new Exception(“error message”));

// 为空默认为空字符串
String name = studentOptional.map(Student::getName).orElse("");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值