instaceof 演算子(型比較演算子)について | Javaプログラマー資格試験(OCJ-P) WEB講座

Javaプログラマー資格試験(OCJ-P) WEB講座

Javaプログラマー資格(OCJ-P)を学習するブログです。

OCJ-P・Javaプログラマー資格をとりたい。
Javaプログラミングの入門者・初心者。

そんなあなたに、Javaプログラマー資格の取得に役立つ本質的な知識を、
分かりやすく解説していきます。

 instanceof演算子は型比較演算子と言います。
言語規定では、15.20.2 型比較演算子 instanceof で定義されています。

A instanceof B の場合、1.『オブジェクトAは型Bのインスタンスである』だけでなく、
2.『キャストして代入可能』である場合もtrueとなります。

私は1だけかとしばらく思っていたのですが、
参考書を読むと2も書かれていたので言語規定を読んでみると、
もう少し本質的な説明がなされていました。

曰く、
『Aが null でなく、例外 ClassCastException を投げず
に B にキャストできるならば、trueとする。』

だそうです。

はい、ということで、ClassCastExceptionも詳しく調べないといけませんね。
ClassCastException は、API仕様で調べましょう。

曰く、
『あるオブジェクトを継承関係にないクラスに
キャストしようとしたことを示すためにスローされます。』