如何通过class判断是否是一个类的子类

有两个类:

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的父类

你可能感兴趣的:(Java)