Что не так с: LinkedList <String>stringList = new LinkedList <String>(); - PullRequest
12 голосов
/ 02 августа 2009

Когда я пытаюсь:

LinkedList<String> stringList = new LinkedList<String>();

Я получаю следующую ошибку компиляции:

type LinkedList does not take parameters

Чего мне не хватает? Ты не можешь сделать это?

Ответы [ 4 ]

26 голосов
/ 02 августа 2009

Убедитесь, что у вас нет скомпилированного класса с именем LinkedList в том же каталоге. (Тем более, что «связанный список» является общим термином, и это то, что люди часто пытаются реализовать как начинающие.) Это важно, если вы импортируете свои классы, используя что-то вроде import java.util.*;, потому что * импортирует по требованию , так что если в пакете уже есть класс с таким же именем, то этот класс используется и java.util.LinkedList не импортируется.

11 голосов
/ 02 августа 2009

Возможно, вы компилируете под JDK 1.4 или более раннюю версию? Или в вашей сборке или среде IDE для вашего языка установлено значение до версии 5.0 (поэтому поддержка обобщений не поддерживается)?

Кстати, лучший способ сделать это -

List<String> stringList = new LinkedList<String>();

По возможности используйте интерфейс, а не реализацию.

При этом, предполагая, что вы компилируете с использованием JDK 5.0+, установите языковые настройки на Java 5+, и это будет java.util.LinkedList, тогда ваш код будет полностью действительным.

1 голос
/ 31 мая 2013

У меня была такая же проблема, и я понял, что по ошибке использовал: import java.awt.List; и получил следующее сообщение об ошибке: "Тип списка не принимает параметры"

Используйте это вместо

import java.util.List;

1 голос
/ 08 января 2010

Не воспринимайте имя класса как class LinkedList, вместо этого вы можете взять class LinkedListDemo, и остальная часть объявления LinkedList<String> t = new LinkedList<String>(); должна быть там, и она будет отлично скомпилирована.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...