有两个类:
class Person {}
class Man extends Person {}
如果要判断Man对象是否是Person的子类,可以这样:
Man man = new Man();
System.out.println(man instanceof Person); // true
现在只知道Man类的class,如何判断它是Person的子类呢,可以用Class的isAssignableFrom
方法
Class<?> clazz = Man.class;
System.out.println(Person.class.isAssignableFrom(clazz)); // true
当然Man.class.isAssignableFrom(clazz)
也是true
总结
- man instanceof Person:man是否是Person的子类
- Person.class.isAssignableFrom(Man.class):Person是否是Man的父类