Проблема компиляции Arrays.asList - PullRequest
0 голосов
/ 30 июля 2010

Я использовал Arrays.asList десятки, если не сотни раз, без проблем.Внезапно предварительно скомпилированный код не может скомпилироваться после перехода на NetBeans 6.9 с 6.8.Вот несколько рассматриваемых строк:

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

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

Подклассы узла не важны;они компилируются нормально.Строка, которая дает мне ошибку, является строкой Arrays.asList.Я получаю сообщение об ошибке

альтернативный текст 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 ]

4 голосов
/ 30 июля 2010

Попробуйте это

List<Node> nodes = Arrays.<Node>asList(n,m,subclass);    
2 голосов
/ 30 июля 2010

Да, вы правы, это ошибка в NetBeans 6.9, о которой уже сообщалось. Поэтому, надеюсь, она скоро будет устранена. Вы можете увидеть этот отчет об ошибке здесь

2 голосов
/ 30 июля 2010

Ваш график ошибок не отображается для меня, но выглядит как общая проблема. Возможно, предупреждение компилятора было переведено в ошибку компилятора, когда вы перешли с netbeans 6.8 на 6.9?

Попробуйте объявить свой список как ...

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

Синтаксис подстановочного знака указывает, что список содержит узлы и все, что наследуется от узла.

0 голосов
/ 30 июля 2010

это должно быть:

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

помните, что:

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

это разные классы.

...