私は次のコードを持っています:
Boolean bool = null;
try
{
if (bool)
{
//DoSomething
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
ブール変数 "bool"をチェックすると例外が発生するのはなぜですか?それが真ではないと「見た」とき、それはifステートメントのすぐ先をジャンプするべきではないでしょうか? ifステートメントを削除するか、nullでないかどうかを確認すると、例外はなくなります。
if (bool == Boolean.TRUE)
例外を生成せずにfalseを評価します。私が見つけたばかりの場合、これが意図的なものかどうかはわかりません。
bool
されたnull
場合Boolean
(およびへの参照としてではない場合)、ORであると偽になりますBoolean.TRUE
。したがって、お勧めしません。対照的に、if (Boolean.TRUE.equals(bool))
安全に取り扱いを含め、予想通りこれはうまくいくnull
価値を。