Что случилось с: 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;
и получил следующее сообщение об ошибке:
"Список типов не принимает параметры"