【发布时间】:2020-02-03 10:29:08
【问题描述】:
我有一个伪 Java 方法,其中所有内容都可以为空:
private String prepareMessage(Scope scope) {
if (scope != null) {
if (scope.getPermission != null) {
if (scope.getInfo != null) {
return "Successful";
} else {
return "Missing field Info";
}
} else if (scope.getInfo() != null) {
return "Permission field not provided";
}
}
return "Permission and Info fields not provided";
}
如何简化此代码以删除看起来很糟糕的空检查?谢谢!
【问题讨论】:
-
你的java版本是多少?
-
在
Scope类中烘焙它们?代码看起来像验证,所以你也可以使用 bean 验证。 -
@ernest_k 我正在使用 java 8
-
Scope类的 getter 方法应该返回Optional -
您可以反转空检查。而不是检查
!= null,而是检查== null并返回相应的字符串。它会更具可读性。看到这个问题:softwareengineering.stackexchange.com/questions/18454/…