我没有特别的原因对此进行过F3,并且惊讶地发现这种方法实现如下:
public static boolean isTrue(Boolean bool) {
if (bool == null) {
return false;
}
return bool.booleanValue() ? true : false;
}
为什么不呢?
public static boolean isTrue(Boolean bool) {
if (bool == null) {
return false;
}
return bool.booleanValue();
}
这没关系,所以我想知道它有什么好处吗?可读性是一个足够弱的论点,我认为这是噪音。除非我遗失了其他一些好处。
答案 0 :(得分:2)
我找不到任何合理的理由。
Java的API规范说:
public boolean booleanValue()
将此Boolean对象的值作为布尔基元返回。
所以如果我们的bool对象是:
Boolean bool = new Boolean(true);
这相当于:
bool.booleanValue() == true;
这里的三元比较器是冗余的,降低了可读性。
答案 1 :(得分:1)
在代码中肯定会减少一次原子操作。 请参阅此以获得更好的解释:https://stackoverflow.com/a/493258/1509129
答案 2 :(得分:0)
我认为没有最终答案为什么它是这样编写的,因为as FelipeFernández指出没有功能上的理由
但是,我的猜测是,要使方法与同一个类中的其他人对称,返回Boolean
对象,例如toBooleanObject
public static Boolean toBooleanObject(boolean bool) {
return bool ? Boolean.TRUE : Boolean.FALSE;
}