我會以某種方式在HashMap中存儲許多不同類型,但以一種方式,當我提取它們時,它們將很好地鍵入(而不是一個對象)。Java:類包裝使用泛型
所以我想使用泛型
public class Value <T>
{
private T innerValue ;
public Value (T _value)
{
innerValue = _value ;
}
public T read()
{
return innerValue ;
}
}
的包裝,但它不工作,對於測試我做:
Value <Integer> va = new Value <Integer> (1) ;
Value vc = va ;
int restA = vc.read();
,但我得到一個設計時錯誤,因爲VC。 read()將返回一個Object()而不是一個Integer。 那麼我該怎麼做才能避免這種行爲? (如果可能的話,我會解決方案,防止'VA'丟失有關T的信息,而不是其他解決方法)
在此先感謝您的任何幫助。
不幸的是,我不相信這將是可能做到這一點,直到一些未來的Java版本中,泛型是「具體化」和參數Java中的類型不再使用擦除來實現。 –
@DavidConrad我不相信會發生。 – bdrx
很傷心。 因此,出於同樣的原因,沒有辦法將對象直接反序列化到正確的類型,這是正確的嗎? – Skary