如何确定一个类是否是其他类的子类?

Łuk*_*nik 7 java

我想检查一个Class对象是否代表其他类的子类

Class class1 = Class.forName("Class1");
Class class2 = Class.forName("Class2");

 if(class1.isSubClassOf(class2)) // fake methos isSubClassOf
{
  // do sth
}
Run Code Online (Sandbox Code Playgroud)

我该如何实现这个isSubClassOf方法?

ska*_*man 12

Class.isAssignableFrom()提供了你或多或少的东西,虽然它也处理接口,所以可能需要做更多的额外工作,以确保它是一个子类,直接或其他.

  • 在阅读该方法的 javadoc 时,我对哪个类是什么感到困惑。为了其他人的利益,将其放在这里:如果您有“class SubClass extends SuperClass”:“SuperClass.class.isAssignableFrom(SubClass.class)”为 true,而“SubClass.class.isAssignableFrom(SuperClass.class)”为错误的。所以这有点与 OP 虚构的 `isSubClassOf` 方法相反。 (2认同)