Java反射盖#1铸造错误
我正在从事一个java项目,这是我的代码:Java反射盖#1铸造错误,java,reflection,casting,Java,Reflection,Casting,我正在从事一个java项目,这是我的代码: Class<? extends Component> componentClass = componentField.getType(); Component tempComponent = entity.get(componentClass); Class有什么不同?是的 Class<?> or Class<? extends Component> componentField.getType()可能返回
Class<? extends Component> componentClass = componentField.getType();
Component tempComponent = entity.get(componentClass);
Class有什么不同?是的
Class<?> or Class<? extends Component>
componentField.getType()
可能返回Class
而不是ClassI我知道它返回Class,问题是我是否可以得到要返回的真实类,因为我需要使用.get()方法。您必须强制转换它,可能是通过原始类型:(Class)componentField.getType()
,并酌情添加@SuppressWarnings。如果实体
是一个映射
,则它不会关心您为其get()
函数指定的类型。你也许可以完全跳过这个角色。
Class<?> or Class<? extends Component>
Class componentClass = componentField.getType();
if(componentClass != Component.Class && Component.isAssignableFrom(componentClass){
Component tempComp = entity.get(componentClass);
}