功能:用來測試一個對象是否為一個類的實例
用法:boolean result = Object instanceof Class
說明:Object是一個實例對象,Class 表示一個類或接口叠赐,當 Object 為 Class 的對象翠霍,或者是其直接或間接子類寂屏,或者是其接口的實現(xiàn)類,結(jié)果 result 都返回 true妥凳,否則返回 false。
實例:
Integer i = new Integer(3);
System.out.println(i instanceof Integer); // 這里輸出 true
isAssignableFrom() 方法是從類繼承的角度去判斷,instanceof關(guān)鍵字是從實例繼承的角度去判斷赊窥。
isAssignableFrom() 方法是判斷是否為某個類的父類,instanceof關(guān)鍵字是判斷是否某個類的子類狸页。
實例:
父類.class.isAssignableFrom(子類.class)
子類實例 instanceof 父類類型
如果該父類表示一個基本類型锨能,且指定的子類參數(shù)正是該 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
}
}