为什么IDEA和Checkstyle认为下面标记的表达式可以简化?
public class MySettingDto {
private Boolean enabled;
}
...
public void methodA(MySettingDto setting) {
if (setting == null) {
return;
}
if (setting.getEnable() == true) { <- CAN BE SIMPIFIED
...
}
}
字符串
简化为if (setting.getEnable())
?当enable
标志是null
时,得到NPE怎么办?也许表明if (setting.getEnable())
到位会更好,它可能会抛出NPE?
有人能给我解释一下IDEA的这种信息的逻辑吗?
1条答案
按热度按时间uxh89sit1#
你可以做
if (setting.getEnable()) {…}
,因为你已经在使用布尔值,不需要计算它。因为你没有使用一个基本的布尔值,你可以做
if (Boolean.TRUE.equals(setting.getEnable()) {…}
。.equals()
通过使用obj instanceof Boolean
在内部做一个null检查,这可以防止NullPointerrupt。