【发布时间】:2020-04-08 04:09:16
【问题描述】:
如何让我的代码看起来更好?
如果存在,我想将 String Name 设置为 ob1j.getX().getXX().getName(),否则我会将 name 设置为 obj1.getY().getYY().getYYY().getName( )。我也在使用 Optional 来执行空检查。
这是正确的做法吗?
我使用的是 JDK8,所以 'ifPresentOrElse' 不是一个选项。
String Name = null;
Optional<String> optA = Optional.ofNullable(obj1.getX())
.map(a -> a.getXX())
.map(b -> b.getName())
if (optA.isPresent()) {
name = optA.get();
} else {
Optional<String> optB = Optional.ofNullable(obj1.getY())
.map(a -> a.getYY())
.map(b -> b.getYYY())
.map(c -> c.getName())
if (optB.isPresent()) {
name = optB.get();
}
}
【问题讨论】:
-
你可以使用 ifPresent 方法来代替 Opt.ifPresent((name) -> // 随便你 name=Opt.get())
标签: java java-8 nullpointerexception optional