instanceof
expressions where
the expression that is checked has a class/interface type that neither extends/implements the class/interface type on the right-side of the
instanceof
expression, nor has subclasses that do.
Although it could be intended for e.g. library code, such a construct is likely erroneous,
because no instance of any class declared in the project could pass this instanceof
test.
Example:
class Foo { }
interface Bar { }
class Main {
void test(Foo f, Bar b) {
if (f instanceof Bar) { // problem
System.out.println("fail");
}
if (b instanceof Foo) { // problem
System.out.println("fail");
}
}
}