【发布时间】:2020-11-17 17:10:53
【问题描述】:
我尝试提交我的代码,但 IntelliJ 中的代码分析显示:'if' 语句可以在这一行中简化:
if (legendTitle != null && legendTitle.equals("My house"))
legendTitle 是一个字符串,我写了legendTitle != null,因为空字符串中的.equals 是一个 NullPointerException
【问题讨论】:
-
你可以更简单地这样做:if ("My house".equals(legendTitle))
-
也就是说,我可能不会打扰 - 这条线路就这样很好。至少这样可以清楚地表明已经考虑了 null 案例。
-
如果
legendTitle是某个方法调用的结果,您可以考虑将该方法调用的返回类型更改为Optional<String>并使用适当的Optional方法,但如果是这样的话本地,这可能是不必要的开销。 -
你还想支持
legendTitle是null的情况吗?因为如果您认为这是代码中的错误,您实际上应该故意触发异常,快速失败。否则你不会注意到这个错误。但是,在那种情况下更喜欢Objects.requireNonNull(legendTitle);,更具表现力。
标签: java optimization intellij-14 code-cleanup