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になります。

Reference
この問題について([解決済み] instanceofを呼び出す前にnullチェックは必要ですか?) , 我々は、より多くの情報をここで見つけました https://stackoverflow.com/questions/2950319/is-null-check-needed-before-calling-instanceof

テキストは自由に共有またはコピーできます。 ただし、このドキュメントのURLは参考URLとして残しておいてください。

Collection and Share based on the CC Protocol