是否可以將泛型類的類型轉換爲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