是否可以将泛型类的类型转换为java中给定的Class对象?像这样:Java:给出类对象的泛型类
public ModelBin<?> getModelBin(Class type) {
return (ModelBin<type>) entities.get(type);
}
编译器告诉我它无法将类型解析为类型。我知道我可以做到这一点,
public ModelBin<?> getModelBin(Class type) {
return entities.get(type);
}
,它会工作,但后来我不得不在节目以后施放每个模型出来的模型箱 - 这是更多的工作。
我做了一些更多的阅读,并结束了与此:
public <T> ModelBin<T> getModelBin(Class<T> type) {
return (ModelBin<T>) entities.get(type);
}
这是否有功能可按返回ModelBin<type>
对象?
实体是一个'HashMap>' –
没有任何类型安全的解决方案。您必须确保地图只能包含有效的映射。此外,使用'类>'而不是原始的'Class'。 – shmosel
随着类型擦除,这是更加困难的,因为在运行时,您可能无法确定该类型是ModelBin的一个实例 | https://docs.oracle.com/javase/tutorial/java/generics/erasure.html –
jrtapsell