【发布时间】:2015-12-05 04:24:26
【问题描述】:
当无法使用空对象时,最好的做法是替换条件运算符空检查样板,如下所示:
public String getEmployeeName() {
return employee == null ? null : employee.getName();
}
Java 8 或任何实用程序库中是否有类似下面的内容?
public String getEmployeeName() {
return nullable(employee, employee -> employee.getName());
}
private <T, R> R nullable(T nullable, Function<T, R> doIfNotNull) {
return nullable == null ? null : doIfNotNull.apply(nullable);
}
【问题讨论】:
-
我发现
return employee == null ? null : employee.getName();是最易读的,所以也许它是更好的解决方案,而不是仅仅让你的代码过于复杂。它完成了工作,并且没有任何问题 - 所以不妨使用它。这就是条件运算符的用途。 -
我也认为这是最清晰和最简单的解决方案,请为此创建一个答案,我会接受。