[英]Why does org.apache.commons.lang.BooleanUtils.isTrue(Boolean bool) use the ternary operator?
我沒有特別的原因對此進行過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();
}
這並不重要,所以我想知道它有什么好處嗎? 可讀性是一個足夠弱的論點,我認為這是噪音。 除非我遺失了一些其他好處。
我找不到任何合理的理由。
Java的API規范說:
public boolean booleanValue()
以布爾基元的形式返回此Boolean對象的值。
所以如果我們的bool對象是:
Boolean bool = new Boolean(true);
這相當於:
bool.booleanValue() == true;
這里的三元比較器是冗余的,降低了可讀性。
在您的代碼中,您可以減少一個原子操作。 有關詳細說明,請參閱此處: https : //stackoverflow.com/a/493258/1509129
我不認為這是為什么這樣寫的最終答案,因為正如費利佩·費爾南德斯指出的那樣,沒有任何功能上的理由
但是,我的猜測是,要使方法與同一個類中的其他人對稱,返回Boolean
對象,例如toBooleanObject
public static Boolean toBooleanObject(boolean bool) {
return bool ? Boolean.TRUE : Boolean.FALSE;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.