我有以下代码:
private HashMap<Class<?>, HashMap<Entity, ? extends Component>> m_componentStores;
public <T extends Component> T getComponent(Entity e, Class<T> exampleClass)
{
HashMap<Entity, ? extends Component> store = m_componentStores.get(exampleClass);
T result = (T)store.get(e);
if (result == null)
{
throw new IllegalArgumentException( "GET FAIL: "+e+" does not possess Component of class\nmissing: "+exampleClass );
}
return result;
}
当我编译时,它显示 T result = (T)store.get(e)
有一个未经检查的类型转换。
Type safety: Unchecked cast from capture#2-of ? extends Component to T
为了防止出现此警告,我缺少什么?
最佳答案
Class.cast
是你想要的。好吧,你可以考虑不使用反射。
换行:
T result = (T)store.get(e);
到:
T result = exampleClass.cast(store.get(e));
关于java:如何修复 Unchecked cast 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4388054/