isAssignableFrom
假設有兩個類Class1和Class2。Class1.isAssignableFrom(Class2)
表示:
- 類Class1和Class2是否相同。
- Class1是否是Class2的父類或介面
呼叫者和引數都是java.lang.Class型別。
instanceof
用來判斷一個物件是否是一個類及其子類或介面及其子介面的的例項。
格式:object instanceof TypeName
第一個引數是物件例項名,第二個引數是具體的類名或介面名
舉例
public class TestCase {
public static void main(String[] args) {
TestCase test = new TestCase();
test.testIsAssignedFrom1();
test.testIsAssignedFrom2();
test.testIsAssignedFrom3();
test.testInstanceOf1();
test.testInstanceOf2();
}
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);
}
}
列印結果:
false
true
true
true
true