Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Arrays.asList编译问题_Java_Netbeans_Netbeans 6.9 - Fatal编程技术网

Java Arrays.asList编译问题

Java Arrays.asList编译问题,java,netbeans,netbeans-6.9,Java,Netbeans,Netbeans 6.9,我已经使用Arrays.asList几十次,如果不是几百次的话,都没有问题。在从6.8切换到NetBeans 6.9之后,以前编译的代码突然无法编译。这里有几句话值得商榷: Node n = new NickNode(4,5); Node m = new NonLocatableNode(); Node subclass = new NickSubclassNode(); List<Node> nodes = Arrays.asList(n,m,subclass); Node n

我已经使用Arrays.asList几十次,如果不是几百次的话,都没有问题。在从6.8切换到NetBeans 6.9之后,以前编译的代码突然无法编译。这里有几句话值得商榷:

Node n = new NickNode(4,5);
Node m = new NonLocatableNode();
Node subclass = new NickSubclassNode();

List<Node> nodes = Arrays.asList(n,m,subclass);
Node n=新的NickNode(4,5);
Node m=新的NonLocatableNode();
Node subclass=new NickSubclassNode();
列表节点=数组.asList(n,m,子类);
节点的子类并不重要;他们编译得很好。给出错误的行是Arrays.asList行。我得到了错误

我不知道它从哪里得到关于HelpCtx.Provider[]的任何信息。。。有人看到这个片段有什么问题吗

将asList行替换为

List<Node> theNodes = new LinkedList<Node>();
theNodes.add(n);
theNodes.add(m);
theNodes.add(subclass);
List theNodes=newlinkedlist();
节点。添加(n);
节点。添加(m);
添加(子类);

很好。但是我更喜欢较短的数组语法。asList

我看不到您的错误图形,但它看起来像是泛型问题。当您从netbeans 6.8迁移到6.9时,编译器警告可能被转换为编译器错误

尝试将您的列表声明为

List<? extends Node> nodes = Arrays.asList(n, m, subclass);
列表应该是:

List<? extends Node> nodes = Arrays.asList(n,m,subclass);

List是的,这是NetBeans 6.9中已经报告过的错误。希望它能很快得到解决。你可以看到bug报告,试试这个

List<Node> nodes = Arrays.<Node>asList(n,m,subclass);    
List节点=Arrays.asList(n,m,subclass);

请原谅我的无知,但那个bug报告似乎完全无关。我根本没有收到空指针异常。一个较短的解决方法可能是绕过varargs:
theNodes=Arrays.asList(新节点[]{n,m,subclass})
n、m和subclass都声明为
节点
。运行时类型完全不相关。@Mark:n、m和子类都声明为节点,但列表不是列表。这就是你需要的方式?将节点扩展为泛型类型。这是对的,但在本例中这并不重要,因为asList将返回一个列表,而不是一个列表。这很有效。我在过去偶然发现了这种语法(它确实很奇怪),但从未在array.asList声明的上下文中使用过它。通常,类型推断工作正常。
List<Node> nodes = Arrays.<Node>asList(n,m,subclass);