isAssignableFrom 是用來判斷一個類Class1和另一個類Class2是否相同或是另一個類的超類或接口。
通常調用格式是
Class1.isAssignableFrom(Class2)
調用者和參數都是 java.lang.Class 類型。
而 instanceof 是用來判斷一個對象實例是否是一個類或接口的或其子類子接口的實例。
格式是: oo instanceof TypeName
第一個參數是對象實例名,第二個參數是具體的類名或接口名
通常調用格式是
Class1.isAssignableFrom(Class2)
調用者和參數都是 java.lang.Class 類型。
而 instanceof 是用來判斷一個對象實例是否是一個類或接口的或其子類子接口的實例。
格式是: oo instanceof TypeName
第一個參數是對象實例名,第二個參數是具體的類名或接口名
具體例子如下:
java 代碼
- package test;
- public class Test2 {
- public void testIsAssignedFrom1()
- {
- System.out.println( String.class.isAssignableFrom(Object.class) ) ;
- }
- public void testIsAssignedFrom2()
- {
- System.out.println( Object.class.isAssignableFrom(Object.class) );
- }
- public void testIsAssignedFrom3()
- {
- System.out.println( Object.class.isAssignableFrom(String.class) );
- }
- public void testInstanceOf1()
- {
- String ss = "";
- System.out.println( ss instanceof Object );
- }
- public void testInstanceOf2()
- {
- Object o = new Object();
- System.out.println( o instanceof Object );
- }
- public static void main(String[] args){
- Test2 test = new Test2();
- test.testIsAssignedFrom1();
- test.testIsAssignedFrom2();
- test.testIsAssignedFrom3();
- test.testInstanceOf1();
- test.testInstanceOf2();
- }
- }
- 打印結果為:
- false
- true
- true
- true
- true