1. ホーム

[解決済み】Null Booleanがtrueかどうかをチェックすると例外が発生する。

2022-04-21 21:51:07

質問

次のようなコードがあります。

Boolean bool = null;

try 
{
    if (bool)
    {
        //DoSomething
    }                   
} 
catch (Exception e) 
{
    System.out.println(e.getMessage());             
}

ブール変数 "bool" をチェックアップすると、なぜ例外が発生するのでしょうか? ifステートメントがtrueでないことを確認したときに、そのステートメントを飛び越えるだけではいけないのでしょうか? if文を削除したり、NOT NULLかどうかを調べると、例外が解消されるのですが。

解決方法は?

がある場合 boolean のどちらかになります。 true または false . しかし Boolean のどちらかになります。 Boolean.TRUE , Boolean.FALSE または null を他のオブジェクトと同様に使用することができます。

あなたの場合、あなたの Booleannull と、その if への暗黙の変換を引き起こします。 boolean を生成します。 NullPointerException . 代わりに必要な場合があります。

if(bool != null && bool) { ... }