解析instanceof和getClass().equals()和isAssignableFr...

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(類),判斷對象的類是否是比較的類或是比較的類的超類超接口。
相關文章
相關標籤/搜索