我在某种数据结构中使用泛型。我必须存储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>
。
由于
答案 0 :(得分:4)
不在您的数组声明中。试试这样:
List<NodeData<Foo>> list = new ArrayList<NodeData<Foo>>();
其中Foo
是您为该实例所需的Value
类型。
答案 1 :(得分:2)
在另一个类中,您必须指定要使用的类型来代替泛型类型Value
例如。
ArrayList<NodeData<String>> items = new ArrayList<NodeData<String>>();.