如何检查类型是否是另一种类型的子类?

jos*_*erk 5 java

我需要检查由Field.getType()检索的反射Field类型的实例是否是扩展特定类GenericModel的另一个类的实例.

我正在尝试下面的伪代码片段:

if(field.getType() "is_a_superclass_of" GenericModel) {
    ... then do something with it
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

当我尝试这样的事情:

field.getType().isAssignableFrom(Language.class)
Run Code Online (Sandbox Code Playgroud)

我得到一个结果,true,这意味着它是Language类,它扩展了GenericModel.然而;

field.getType().isAssignableFrom(GenericModel.class)
Run Code Online (Sandbox Code Playgroud)

返回false?

field.getType() == "za.co.company.package.model.Language"
Run Code Online (Sandbox Code Playgroud)

Jim*_*son 7

你有倒退的测试.

GenericModel.class.isAssignableFrom(field.getType())
Run Code Online (Sandbox Code Playgroud)