public class Compare { public static void main(String[] args) { Object o1 = new A(); Object o2 = new B(); System.out.println(o1 instanceof A); System.out.println(o1 instanceof B); System.out.println(o2 instanceof A); System.out.println(o2 instanceof B); System.out.println("--------------------"); System.out.println(o1.getClass().equals(A.class)); System.out.println(o1.getClass().equals(B.class)); System.out.println(o2.getClass().equals(A.class)); System.out.println(o2.getClass().equals(B.class)); System.out.println("--------------------"); System.out.println(o1.getClass().isAssignableFrom(A.class)); System.out.println(o1.getClass().isAssignableFrom(B.class)); System.out.println(o2.getClass().isAssignableFrom(A.class)); System.out.println(o2.getClass().isAssignableFrom(B.class)); } } class A {} class B extends A{}
true false true true -------------------- true false false true -------------------- true true false true
對象 instanceof 類 ,判斷對象可否成功轉換成對應類的對像
對象.getgetClass().equals(類),判斷對象的類和比較的類是不是一個類
對象.getClass().isAssignableFrom(類),判斷對象的類是否是比較的類或是比較的類的超類超接口。