Eclipse: синтаксическая ошибка, параметризованные типы доступны только при уровне источника 1,5 - PullRequest
40 голосов
/ 10 марта 2010

Я пытаюсь использовать следующий код:

ArrayList<String>
Map<String, String>

Eclipse жалуется на них обоих: синтаксическая ошибка, параметризованные типы - только если уровень источника 1,5.

Я использую JDK 1.6, но даже если я иду к компилятору и переключаю соответствие на 1.5. Это все еще дает мне эту ошибку. Есть идеи почему?

Ответы [ 16 ]

41 голосов
/ 20 сентября 2011

Этот обходной путь полезен, когда появляется эта проблема.

1) Установите для рабочей области JRE значение 1,5 (и примените / сохраните). Проекты перестроят.

2) Верните JRE Workspace обратно в 1.6 (и примените / сохраните). Проекты перестроят.

Все ошибки исчезнут (пока, по крайней мере).

39 голосов
/ 15 ноября 2011

Это может быть решено следующим образом:

  1. Перейти к свойствам проекта.

  2. Затем «Компилятор Java» -> Установите флажок («Включить настройки проекта»)

  3. Измените уровень соответствия компилятора на «5.0» и нажмите «ОК».

Перестроить. Это будет решено.

Кроме того, установите флажок «Использовать параметры соответствия по умолчанию».

23 голосов
/ 10 марта 2010

Полагаю, что когда вы запускаете eclipse непосредственно с JDK 1.6, он на самом деле настроен с другим jre по умолчанию.

См. Window->preferences->java->Installed JREs и убедитесь, что проверенный JRE равен 1.6.

Если JRE по умолчанию действительно 1.6, есть вероятность, что это специфическая для проекта настройка. Смотрите, что проект настроен на использование правильной JRE.

19 голосов
/ 28 марта 2011

Да. Независимо от того, что кто-то еще говорит, Eclipse содержит некоторые ошибки, которые иногда приводят к игнорированию настроек рабочего пространства (например, совместимых с 1.6). Это даже когда настройки для каждого проекта отключены, настройки рабочего пространства верны (1.6), JRE настроен правильно, определено только 1.6 JRE и т. Д., Все, что люди обычно рекомендуют при возникновении вопросов по этой проблеме размещены на различных форумах (как это часто бывает).

Мы сталкиваемся с этим нерегулярно, но часто, и обычно, когда есть какая-то не связанная проблема с зависимостями времени сборки или другие проблемы проекта. Кажется, он попадает в общую категорию «неспособности Eclipse распознавать реальность», которую я всегда приписываю, правильно или неправильно, чтобы обновить проблемы с обширными метаданными Eclipse. Метаданные Eclipse - это благословение и проклятие; когда все работает хорошо, инструмент становится чрезвычайно мощным и быстрым. Но когда возникают проблемы, расширенное кэширование затрудняет решение проблем - иногда гораздо труднее - чем с помощью других инструментов.

7 голосов
/ 07 августа 2015

Это работает для меня.

В eclipse перейдите в свойства проекта -> Java-компилятор.

Затем перейдите на Java выше 1,5.

изменить настройки соответствия компилятора на 1.6 изменить совместимость файлов Generated.class до 1.6 изменить совместимость источника до 1.6

Спасибо. Screen Shot for changes

7 голосов
/ 29 марта 2013

Перейти к свойствам проекта.

Затем «Компилятор Java» -> Установите флажок и «Включить специфические параметры проекта»

Снимите флажок «Использовать соответствие из среды выполнения» OSGi /Minimum-1.2 'на Java "

Затем измените уровень соответствия компилятора на' 1.5 'и нажмите Ok.

Перестройте его, и ваша проблема будет решена.

5 голосов
/ 10 марта 2010

Щелкните правой кнопкой мыши свой проект и выберите свойства в диалоговом окне свойств, проверьте настройки компилятора Java, возможно, у вас есть другие настройки рабочего пространства.

2 голосов
/ 09 апреля 2015

Один ответ не смог решить мою проблему, поэтому я использовал оба:

  • Первый щелчок правой кнопкой мыши на ошибке в закладке проблемы
  • нажмите Быстрое исправление
  • ОК
  • клик правой кнопкой мыши по проекту
  • путь сборки
  • настроить путь сборки
  • удалить библиотеку JRE
  • добавить библиотеку JRE

.... тада ... сделано ...:)

2 голосов
/ 01 ноября 2011

У меня возникла та же проблема с выпуском Eclipse Indigo - хотя проект был настроен правильно. Основная причина, которую я подозреваю, состоит в том, что рабочая область определена в отдельной папке от фактических исходных папок (как упоминалось user748337). Чтобы решить эту проблему, мне пришлось включить опцию параметров проекта (в настройках Porject), хотя она не отличалась от настроек рабочей области.

1 голос
/ 16 января 2017

Сделайте следующее ..

Щелкните правой кнопкой мыши по своему проекту -> выберите свойства -----> выберите компиляторы Java

Вы увидите это окно

Изображение для справки

Теперь установите флажок ---> включить специфичные для проекта настройки.

Теперь установите уровень соответствия компилятора на 1,6

.

Применить, затем ОК

Теперь очистите ваш проект, и вы готовы к работе

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