我已经使用了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);
节点的子类并不重要;他们编译得很好。给出错误的行是Arrays.asList行。我收到了错误
alt text http://grab.by/grabs/b553ffb898ca0874ef4741b8c87fc576.png
我不知道它在哪里得到任何关于HelpCtx.Provider [] ...有没有人看到这个片段有什么问题?
用
替换asList行List<Node> theNodes = new LinkedList<Node>();
theNodes.add(n);
theNodes.add(m);
theNodes.add(subclass);
工作正常。但我更喜欢Arrays.asList
的更短语法答案 0 :(得分:4)
试试这个
List<Node> nodes = Arrays.<Node>asList(n,m,subclass);
答案 1 :(得分:2)
您的错误图形没有显示给我,但它看起来像一个泛型问题。当您从netbeans 6.8移动到6.9时,编译器警告可能会切换到编译器错误
尝试将您的列表声明为...
List<? extends Node> nodes = Arrays.asList(n, m, subclass);
通配符语法指定列表包含节点和从节点继承的任何内容。
答案 2 :(得分:2)
您是对的,这是已经报告的NetBeans 6.9中的错误。希望它很快就会得到解决。您可以看到错误报告here
答案 3 :(得分:-1)
它应该是:
List<? extends Node> nodes = Arrays.asList(n,m,subclass);
请记住:
List<Sub Class> is not a sub class for List<Parent Class>
他们是不同的班级。