该类是一个容器类,表示一个值存在或者不存在
- 常用方法
方法名 | 用途 |
---|---|
Optional.of(T t) | 生成一个实例,接受的对象不能为null |
Optional.empty() | 生成一个空实例 |
Optional.ofNullable(T t) | 若t==null,则创建空实例 |
get() | 获取当前实例,不存在则NPE |
isPresent() | 判断是否有值 |
orElse(T t) | 原先有值,则返回原值,若无,则返回t |
orElseGet(Supplier s) | 函数式接口的orElse |
map(Function f) | 有值则进行处理,否则返回空实例 |
flatMap(Function f) | 与map类似,返回值必须是Optional |
- 实例代码
Man类
@Data
class Man {
Optional<Godness> godness;
}
Godness类
@Data
class Godness {
String name;
}
演示方法
String getGodnessName(Optional<Man> man) {
return man.orElse(new Man())
.getGodness()
.orElse(new Godness())
.getName();
}