1. ホーム
  2. java

[解決済み] instanceofを呼び出す前にnullチェックは必要ですか?

2022-03-15 18:45:45

質問

ウィル null instanceof SomeClass 戻る false を投げるか NullPointerException ?

解決方法は?

いいえ、instanceofを使用する前にNULLチェックを行う必要はありません。

式は x instanceof SomeClassfalse もし xnull .

Java 11 Language Specificationでは、これを簡潔に次のように表現しています。 15.20.2 節、"型比較演算子 instanceof"。 . ( Java 17では、より簡潔に表現されています。 instanceof patternmatchingが導入された後です)。

<ブロッククオート

"実行時の結果は instanceof 演算子は true もし の値は RelationalExpression は ではない null であり、その参照は にキャストします。 ReferenceType を発生させることなく ClassCastException . そうでなければ、結果は false ."

つまり、オペランドがNULLの場合、結果はFALSEになります。