代码之家  ›  专栏  ›  技术社区  ›  I82Much

Arrays.asList编译问题

  •  0
  • I82Much  · 技术社区  · 15 年前

    我已经使用Arrays.asList几十次,如果不是几百次的话,没有问题。在从6.8切换到NetBeans6.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[]的任何信息。。。有人看到这个片段有什么问题吗?

    List<Node> theNodes = new LinkedList<Node>();
    theNodes.add(n);
    theNodes.add(m);
    theNodes.add(subclass);
    

    很好用。但是我更喜欢Arrays.asList的简短语法

    4 回复  |  直到 15 年前
        1
  •  4
  •   Dany    15 年前

    试试这个

    List<Node> nodes = Arrays.<Node>asList(n,m,subclass);    
    
        2
  •  2
  •   Tansir1    15 年前

    尝试将您的列表声明为。。。

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

    通配符语法指定列表包含节点和从节点继承的任何内容。

        3
  •  2
  •   Rupeshit    15 年前

    是的,你是对的,这是netbeans6.9中已经报告的错误,所以希望它能很快得到解决。你可以看到错误报告 here

        4
  •  -1
  •   mhshams    15 年前

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

    请记住:

    List<Sub Class> is not a sub class for List<Parent Class>
    

    他们是不同的班级。

    推荐文章