判断name是否为空,为空默认返回0
Optional.ofNullable(name).orElse(0)
判断是否为空,不为空则赋值
Optional.ofNullable(对象1).ifPresent(a -> 对象2.setName(a.getName()));
public static String getChampionName(Competition comp) {
if (comp != null) {
CompResult result = comp.getResult();
if (result != null) {
User champion = result.getChampion();
if (champion != null) {
return champion.getName();
}
}
}
}
上述用Optional写:
Optional.ofNullable(comp)
.map(Competition::getResult) // 相当于c -> c.getResult(),下同
.map(CompResult::getChampion)
.map(User::getName)