繼承關系判斷
-
Class.java # public native boolean isInstance(Object obj);
// true System.out.println(childType.isInstance(childObject)); // true System.out.println(parentType.isInstance(childObject)); // false System.out.println(childType.isInstance(parentObject));
說明:
- 參數obj的參數類型若為.class,返回 false
- 當參數強轉為調用者對象不會報異常時,返回true(即調用者為參數的類或父類)
-
Class.java#public native boolean isAssignableFrom(Class<?> cls);
調用者和參數都是.class類型;參數是調用者的子類時為true
// true System.out.println(parentType.isAssignableFrom(childType));
-
instance of 關鍵字
用法:
A isntance of B
:判斷左邊對象是否是右邊類的實例;@Test public void test3() { Child1 childObject = new Child1(); Parent1 parentObject = new Parent1(); // true System.out.println(childObject instanceof Parent1); // false System.out.println(parentObject instanceof Child1); }