isAssignableFrom 是用來判斷一個類Class1和另一個類Class2是否相同或是另一個類的超類或接口涯穷。
通常調(diào)用格式是
Class1.isAssignableFrom (Class2)
調(diào)用者和參數(shù)都是 java.lang.Class 類型。
而 instanceof 是用來判斷一個對象實例是否是一個類或接口的或其子類子接口的實例。
格式是: o instanceof TypeName
第一個參數(shù)是對象實例名章钾,第二個參數(shù)是具體的類名或接口名
具體例子如下:
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 s = "";
System.out.println(s instanceof Object);
}
public void testInstanceOf2() {
Object o = new Object();
System.out.println(o instanceof Object);
}
}
打印結(jié)果:
false
true
true
true
true