Почему Eclipse жалуется на @Override на методы интерфейса?

У меня есть существующий проект, который использует @Override для методов, которые переопределяют методы интерфейса, а не методы суперкласса. Я не могу изменить это в коде, но мне хотелось бы, чтобы Eclpse перестала жаловаться на аннотацию, поскольку я все еще могу построить с Maven.

Как я могу отключить эту ошибку?

Примечание. Из-за требований проекта мне нужно скомпилировать для Java 1.5.

Ответ 1

Использование аннотации @Override в методах, реализующих методы, объявленные интерфейсом, допустимо только в Java 6 и более @Override. Это ошибка в Java 5.

Убедитесь, что ваши проекты IDE настроены на использование Java 6 JRE и что "совместимость с исходным кодом" установлена на уровне 1.6 или выше. Сделайте следующее:

  • Откройте диалоговое окно "Окно"> "Настройки",
  • и перейдите к Java> Компилятор
  • Там вы можете установить "Уровень соответствия компилятора" на 1.6.

Помните, что Eclipse может переопределить эти глобальные настройки для конкретного проекта, поэтому проверьте их тоже.


Обновить:

Ошибка в Java 5 не только в Eclipse; использование javac напрямую из командной строки выдаст вам ту же ошибку. Это не допустимый исходный код Java 5.

Однако вы можете указать -target 1.5 для JDK 6 javac, которая будет генерировать файл класса версии Java 5 из исходного кода Java 6.

Ответ 2

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

Проект → Свойства → Java-компилятор ->

  • Включить настройки проекта - "да"
  • Соответствие компилятора - 1.6
  • сгенерированные файлы классов и совместимость с исходным кодом - 1,5

Ответ 3

Проверьте также, имеет ли проект фасет. Версия java может быть переоценена.

Ответ 4

Параметры проекта могут быть включены. Выберите проект Project > Properties > Java Compiler, uncheck Enable project specific settings или измените Jdk 1.6 и выше, не забыв о соответствующем JRE.
Если он не работает, удалите проект из eclipse, удалите файлы .settings folders, .project, .classpath. clean and build the project, import it back into eclipse and then reset your Java compiler. Clean and build your project и затмение. Это сработало для меня

Ответ 5

Вы можете изменить настройки компилятора, чтобы принять синтаксис Java 6, но сгенерировать выход Java 5 (как я помню). И установите "Совместимость файлов с расширенными классами" немного ниже, если это необходимо для вашей среды выполнения. Обновление. Я проверил Eclipse, но он жалуется, что я устанавливаю совместимость источника с 1.6 и совместимость классов с 1.5. Если 1.6 не разрешено, я обычно вручную комментирую оскорбительные аннотации @Override в источнике (что не помогает вашему делу).

Update2: Если вы делаете только ручную сборку, вы можете написать небольшую программу, которая копирует исходный проект в новую, разделяет аннотации @Override из java-источников и вы просто нажимаете "Чистый проект" в Eclipse.

Ответ 6

Вы также можете попробовать Retroweaver для создания Java5-версии из классов Java6.

Ответ 7

Используйте Eclipse для поиска и замены (удаления) всех экземпляров "@Override" . Затем добавьте переопределения неинтерфейса, используя "Очистить".

Шаги:

  • Выберите проекты или папки, содержащие исходные файлы.
  • Перейдите в "Поиск > Поиск..." (Ctrl-H), чтобы открыть диалог поиска.
  • Перейдите на вкладку "Поиск файла".
  • Введите "@Override" в "Содержит текст" и "*.java" в "Шаблоны имен файлов". Нажмите "Заменить...", затем "ОК", чтобы удалить все экземпляры "@Override" .
  • Перейдите в "Window > Preferences > Java > Code Style > Clean Up" и создайте новый профиль.
  • Отредактируйте профиль и снимите все флажки, кроме "Отсутствующий код > Добавить отсутствующие аннотации > @Override". Убедитесь, что "Реализации методов интерфейса" не отмечены.
  • Выберите проекты или папки, содержащие исходные файлы.
  • Выберите "Source > Clean Up..." (Alt + Shift + s, затем u), затем "Finish", чтобы добавить обратно неинтерфейсные переопределения.

Ответ 8

Я понял вашу проблему, изменил ваш jdk с вашего jdk на большее 1.5

Ответ 9

Установив, что проекты IDE настроены на использование Java 6 JRE или выше, иногда не удаляет ошибку eclipse. Для меня помог перезапуск Eclipe IDE.

Ответ 10

Даже после изменения настройки соответствия компилятора 1,6 или 1,7 из окна, затем предпочитает, затем java, затем компилятор и настройку компилятор, я все еще сталкивался с этой проблемой. Идея состоит в том, что мы нужно перейти в папку проекта, щелкнуть правой кнопкой мыши, Java и установить компилятор соответствие 1.6 или более высоким. Это сработало для меня.