检查Class对象是否是Java中另一个Class对象的子类型?

时间:2012-04-27 05:10:59

标签: java class inheritance

假设我有两个Class个对象。有没有办法检查一个类是否是另一个类的子类型?

 public class Class1 { ... }

 public class Class2 extends Class1 { ... }

 public class Main {
   Class<?> clazz1 = Class1.class;
   Class<?> clazz2 = Class2.class;

   // If clazz2 is a subtype of clazz1, do something.
 }

2 个答案:

答案 0 :(得分:8)

if (clazz1.isAssignableFrom(clazz2)) {
    // do stuff
}

检查clazz1是否相同,或clazz2的超类。

答案 1 :(得分:1)

您可以这样检查:

if(Class1.class.isAssignableFrom(Class2.class)){

}