Arrays.asList编译问题

时间:2010-07-30 12:56:32

标签: 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);

节点的子类并不重要;他们编译得很好。给出错误的行是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

的更短语法

4 个答案:

答案 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>

他们是不同的班级。