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的建议,因为这就是泛型的作用——允许编译时类型检查。