我正在研究一个java项目,这是我的代码:
Class<? extends Component> componentClass = componentField.getType();
Component tempComponent = entity.get(componentClass);
这是我的错误:
incompatible types: Class<CAP#1> cannot be converted to Class<? extends Component> where CAP#1 is a fresh type-variable:
CAP#1 extends Object from capture of ?
componentField是一个字段,我知道它扩展了Component,当我尝试获取它返回类型的新类型CAP#1时,是否可以将它转换为从组件扩展的类? entity.get()是一个以<T extends Component>
为参数的通用方法。
答案 0 :(得分:0)
有什么区别?它是
Class<?> or Class<? extends Component>
如果你想检查Class是extendeding Component ..为什么不使用Class#isAssignableFrom(Class type)
Class componentClass = componentField.getType();
if(componentClass != Component.Class && Component.isAssignableFrom(componentClass){
Component tempComp = entity.get(componentClass);
}