我需要检查Field.getType()检索的反射Field类型的实例是否是扩展特定类GenericModel的另一个类的实例。
我正在尝试以下伪代码片段中的内容:
if(field.getType() "is_a_superclass_of" GenericModel) {
... then do something with it
}
我该怎么做?
当我尝试类似的事情时:
field.getType().isAssignableFrom(Language.class)
我得到一个结果,true,这意味着它是Language类,它扩展了GenericModel。然而;
field.getType().isAssignableFrom(GenericModel.class)
返回false?
field.getType() == "za.co.company.package.model.Language"
答案 0 :(得分:7)
你倒退了。
GenericModel.class.isAssignableFrom(field.getType())
答案 1 :(得分:3)
尝试
GenericModel.class.isAssignableFrom(field.getType())
答案 2 :(得分:1)
您可能希望颠倒验证顺序:
GenericModel.class.isAssignableFrom(field.getType());
在此代码中,您询问GenericModel是否是“field.getType()”的超类