instanceof
表达式,其中检查的表达式的类/接口类型既不扩展/实现 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");
}
}
}