我在某種數據結構中使用泛型。我必須存儲int x
,int y
和Value value
,其中value
是通用類型。仿製藥和類型
我試圖將所有這些在一個對象調用NodeData
然後在另一個類中,創建的NodeData
的一個ArrayList,(因此在陣列列表中的每個元素將包括保持一個x,y和價值。
我NodeData
如下:
public class NodeData<Value> {
private int x;
private int y;
private Value value;
在另一大類,數組列表中的實例如下:ArrayList<NodeData> items = new ArrayList<NodeData>();
我得到一個錯誤的一個列表說:NodeData is a raw type. References to NodeData<Value> should be parametrized.
爲什麼呢? NodeData
已被參數化爲NodeData<Value>
。
謝謝
當你做NodeData它假設你將代替一些真實的類的價值。您定義它的方式值可以是任何類型,可能不是您想要的。 –
MeBigFatGuy
你沒有得到一個錯誤,而是一個***警告***,這是一個很大的區別。你在做什麼是不安全的,但如果你保重,可能會有效。我建議你遵循duffymo的建議,因爲這是泛型的目的 - 允許編譯時類型檢查。 –