我在某种数据结构中使用泛型。我必须存储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的建议,因为这是泛型的目的 - 允许编译时类型检查。 –