初衷
- 避免因空指针异常引入大量的非空判断
使用场景
- 不使用Optional
if(user != null) {
UserInfo userInfo = user.getUserInfo();
if(userInfo != null) {
BodyInfo bodyInfo = userInfo.getBodyInfo();
if(bodyInfo != null) {
return bodyInfo.getDesc();
}
}
}
return null;
- 使用Optional
return Optional.ofNullable(user).map(User::getUserInfo)
.map(UserInfo::getBodyInfo).map(BodyInfo::getDesc).orElse(null);