1. 总结
- instanceof关键字:是实例维度的,一个对象是否为一个类的实例,即 子类实例对象 instanceof 关键字。
- A.isAssignableFrom(B)方法:是从class维度,一个类(A)是否是另一个类(B)指派的,即A是否是B的父类,即父类.class.isAssignableFrom(子类.class)
2. 代码演示
1. isAssignableFrom()
public interface ITest {
}
public class TestImpl implements ITest {
}
public class OtherImpl {
}
public class demo {
public static void main(String[] args) {
if(ITest.class.isAssignableFrom(TestImpl.class)){
System.out.println("TestIml.class 是 ITest.class 的子类");
}
if(ITest.class.isAssignableFrom(OtherImpl.class)){
System.out.println("OtherImpl.class 是 ITest.class 的子类");
} else {
System.out.println("OtherImpl.class 不是 ITest.class 的子类");
}
}
}
2. instanceof关键字
public class demo {
public static void main(String[] args) {
Object o1 = 10;
Object o2 = "string";
if(o1 instanceof String){
System.out.println("o1 是 String");
} else {
System.out.println("o1 不是 String");
}
if(o1 instanceof Integer){
System.out.println("o1 是 Integer");
} else {
System.out.println("o1 不是 Integer");
}
if(o2 instanceof String){
System.out.println("o2 是 String");
} else {
System.out.println("o2 不是 String");
}
if(o2 instanceof Integer){
System.out.println("o2 是 Integer");
} else {
System.out.println("o2 不是 Integer");
}
}
}