Java 非专利药及;类型

Java 非专利药及;类型,java,generics,arraylist,Java,Generics,Arraylist,我在某种数据结构中使用泛型。我必须存储int x、int y和Value-Value,其中Value是泛型类型 我试图将所有这些元素分组到一个名为NodeData的对象中,然后在另一个类中,创建一个NodeData的ArrayList(因此数组列表中的每个元素将包含一个x、y和值) 我的节点数据如下所示: public class NodeData<Value> { private int x; private int y; private Value va

我在某种数据结构中使用泛型。我必须存储
int x
int y
Value-Value
,其中
Value
是泛型类型

我试图将所有这些元素分组到一个名为
NodeData
的对象中,然后在另一个类中,创建一个
NodeData
的ArrayList(因此数组列表中的每个元素将包含一个x、y和值)

我的
节点数据如下所示:

public class NodeData<Value> {

    private int x;
    private int y;
    private Value value;
公共类节点数据{
私人INTX;
私营企业;
私人价值;
在另一个类中,数组列表实例化如下:
arraylistitems=newarraylist();

我得到一个数组列表错误,它说:
NodeData是原始类型。对NodeData的引用应该参数化。
为什么?
NodeData
已经参数化为
NodeData


谢谢你的数组声明中没有。请像这样尝试:

List<NodeData<Foo>> list = new ArrayList<NodeData<Foo>>();
List List=new ArrayList();

其中
Foo
是该实例所需的
类型。

不在数组声明中。请这样尝试:

List<NodeData<Foo>> list = new ArrayList<NodeData<Foo>>();
List List=new ArrayList();

其中,
Foo
是该实例所需的
类型。

在另一个类中,您必须指定要使用的类型来代替泛型类型

例如

ArrayList items=new ArrayList();。

在另一个类中,您必须指定要使用的类型来代替泛型类型

例如

ArrayList items=new ArrayList();。

不起作用。它说
绑定不匹配:类型值不是绑定参数@Nayefc的有效替代品。我在最后错过了一个
。它现在被修复了。这不是我没有复制和粘贴的问题,我自己添加了它。它现在自己消失了,可能是我的IDE花了时间才意识到的。现在可以工作了,谢谢。不起作用。它说
绑定不匹配:类型值不是绑定参数@Nayefc的有效替代品。我在最后错过了一个
。它现在已经修复。这不是我没有复制和粘贴的问题,我自己添加了它。它现在只是自己消失了,我的IDE可能需要时间才能意识到这一点。现在可以工作了。谢谢。什么时候你可以使用NodeData。假设你将用真实的类替换值。你定义它值的方式可以是任何类型,可能不是你想要的。你不会得到错误,而是一个警告,这是一个很大的区别。你所做的不安全,但如果你小心的话,可能会起作用。我建议你不要这样做o遵循duffymo的建议,因为这是泛型的作用——允许编译时类型检查。当您执行NodeData时,假定您将用某个实际类替换值。您定义它值的方式可以是任何可能不是您想要的类型。您不会得到错误,而是得到警告,并且这是一个很大的区别。你所做的并不安全,但如果你小心的话,可能会起作用。我建议你遵循duffymo的建议,因为这就是泛型的作用——允许编译时类型检查。