instanceof を呼び出す前に null チェックは必要ですか? 質問する

instanceof を呼び出す前に null チェックは必要ですか? 質問する

null instanceof SomeClassを返すかfalseそれとも投げますかNullPointerException?

ベストアンサー1

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

が の場合、式はx instanceof SomeClassとなりますfalsexnull

Java 11言語仕様ではこれを簡潔に表現しています。セクション 15.20.2、「型比較演算子 instanceof」. (Java 17ではこれをあまり簡潔に表現していないパターン マッチングが導入されて以降instanceof

「実行時に、 RelationalExpressionの値が でなく、を発生させずに参照をReferenceTypeにキャストできる場合instanceof、演算子の結果はになります。それ以外の場合は、結果は になります。」true nullClassCastExceptionfalse

したがって、オペランドが null の場合、結果は false になります。

おすすめ記事