instanceof 式の右辺でクラス/インターフェース型を extends/implements せず、それを行うサブクラスもないクラス/インターフェース型がチェック対象の式にある instanceof 式を報告します。
このような式はライブラリコードをなどを意図している可能性があるものの、このようなコンストラクトは間違いである可能性があります。なぜなら、プロジェクトで宣言されているクラスのインスタンスはこの instanceof テストをパスできない可能性があるためです。
例:
class Foo { }
interface Bar { }
class Main {
void test(Foo f, Bar b) {
if (f instanceof Bar) { // 問題
System.out.println("fail");
}
if (b instanceof Foo) { // 問題
System.out.println("fail");
}
}
}