功能:用来测试一个对象是否为一个类的实例
用法:boolean result = Object instanceof Class
说明:Object是一个实例对象,Class 表示一个类或接口,当 Object 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果 result 都返回 true,否则返回 false。
实例:
Integer i = new Integer(3);
System.out.println(i instanceof Integer); // 这里输出 true
isAssignableFrom() 方法是从类继承的角度去判断,instanceof关键字是从实例继承的角度去判断。
isAssignableFrom() 方法是判断是否为某个类的父类,instanceof关键字是判断是否某个类的子类。
实例:
父类.class.isAssignableFrom(子类.class)
子类实例 instanceof 父类类型
如果该父类表示一个基本类型,且指定的子类参数正是该 Class 对象,则该方法返回 true;否则返回 false。
public class A {
public static void main(String[] args) {
A a = new A();
B b = new B();
A ba = new B();
System.out.println(A.class.isAssignableFrom(a.getClass())); //true
System.out.println(B.class.isAssignableFrom(b.getClass())); //true
System.out.println(A.class.isAssignableFrom(b.getClass())); //true
System.out.println(B.class.isAssignableFrom(a.getClass())); //false
System.out.println(A.class.isAssignableFrom(ba.getClass())); //true
System.out.println(B.class.isAssignableFrom(ba.getClass())); //true
}
}