【Java 8 新特性】 Optional

初衷

  • 避免因空指针异常引入大量的非空判断

使用场景

  • 不使用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);
剑指 Offer
原文地址:https://www.cnblogs.com/kunlingou/p/12180203.html