Что случилось с: LinkedList <String> stringList = new LinkedList <String>();

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

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

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

type LinkedList does not take parameters

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

Ответ 1

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

Ответ 2

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

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

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

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

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

Ответ 3

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

Ответ 4

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

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

импортировать java.util.List;