instanceof 为Java中的二目运算符,分别位于 instanceof 左右两边,用于检测 instanceof 左边的 对象是否可以实例化为 instanceof 右边的类或者接口,即是否在同一树上(是否存在继承或者实现关系)。
关系如果成立 可用于强转前的判断,判定成功后使用强转
示例public class App
{
public static void main( String[] args ){
A a = null;
B b = new B();
C c = new C();
Boolean test = null;
System.out.println((a instanceof A) + " a instanceof A");
System.out.println((a instanceof B) + " a instanceof B");
System.out.println((a instanceof C) + " a instanceof C");
System.out.println();
System.out.println((b instanceof A) + " b instanceof A");
System.out.println((b instanceof B) + " b instanceof B");
System.out.println((b instanceof C) + " b instanceof C");
System.out.println();
System.out.println((c instanceof A) + " c instanceof A");
System.out.println((c instanceof B) + " c instanceof B");
System.out.println((c instanceof C) + " c instanceof C");
}
}
interface A{
}
class B implements A{
}
class C extends B{
}
示例结果
false a instanceof A false a instanceof B false a instanceof C true b instanceof A true b instanceof B false b instanceof C true c instanceof A true c instanceof B true c instanceof C



