私は次のコードを持っています:
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価値を。