功能:用來測試一個對象是否為一個類的實例
用法:boolean result = Object instanceof Class
說明:Object是一個實例對象,Class 表示一個類或接口,當 Object 為 Class 的對象,或者是其直接或間接子類,或者是其接口的實現類,結果 result 都返回 true,否則返回 false。
實例:
Integer i = new Integer(3);
System.out.println(i instanceof Integer); // 這里輸出 true
isAssignableFrom() 方法是從類繼承的角度去判斷,instanceof關鍵字是從實例繼承的角度去判斷。
isAssignableFrom() 方法是判斷是否為某個類的父類,instanceof關鍵字是判斷是否某個類的子類。
實例:
父類.class.isAssignableFrom(子類.class)
子類實例 instanceof 父類類型
如果該父類表示一個基本類型,且指定的子類參數正是該 Class 對象,則該方法返回 true;否則返回 false。
public class A {
public static void main(String[] args) {
A a = new A();
B b = new B();
A ba = new B();
System.out.println(A.class.isAssignableFrom(a.getClass())); //true
System.out.println(B.class.isAssignableFrom(b.getClass())); //true
System.out.println(A.class.isAssignableFrom(b.getClass())); //true
System.out.println(B.class.isAssignableFrom(a.getClass())); //false
System.out.println(A.class.isAssignableFrom(ba.getClass())); //true
System.out.println(B.class.isAssignableFrom(ba.getClass())); //true
}
}