Почему Eclipse жалуется на @Override в методах интерфейса?
-
13-09-2019 - |
Вопрос
У меня есть существующий проект, который использует @Override
о методах, которые переопределяют интерфейс методы, а не методы суперкласса.Я не могу изменить это в коде, но я бы хотел, чтобы Eclpse перестал жаловаться на аннотацию, поскольку я все еще могу создавать с помощью Maven.
Как бы мне отключить эту ошибку?
Примечание:Из-за требований проекта мне нужно скомпилировать для Java 1.5.
Решение
Используя @Override
аннотации к методам, реализующим объявленные интерфейсом, действительны только начиная с Java 6.Это ошибка в Java 5.
Убедитесь, что ваши проекты IDE настроены на использование JRE Java 6, а для параметра «Совместимость исходного кода» установлено значение 1,6 или выше:
- Откройте диалоговое окно «Окно» > «Настройки».
- Перейдите к Java > Компилятор.
- Там установите «Уровень соответствия компилятора» на 1,6.
Помните, что Eclipse может переопределить эти глобальные настройки для конкретного проекта, поэтому проверьте и их.
Обновлять:
Ошибка в Java 5 касается не только Eclipse;с использованием javac
прямо из командной строки выдаст ту же ошибку. Это недействительный исходный код Java 5.
Однако вы можете указать -target 1.5
вариант для JDK 6 javac
, который создаст файл класса версии Java 5 из исходного кода Java 6.
Другие советы
Сделайте следующее:
Проект -> Свойства -> компилятор Java ->
- Включить настройки проекта — «да»
- Соответствие компилятора - 1,6
- сгенерированные файлы классов и совместимость исходного кода - 1.5
Проверьте также, есть ли у проекта фасет.Версия Java может быть переопределена там.
Могут быть включены специальные настройки проекта.Выберите свой проект 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
и затмение.Это сработало для меня
Вы можете изменить настройки компилятора, чтобы принять синтаксис Java 6, но генерировать выходные данные Java 5 (насколько я помню).И установите «Совместимость сгенерированных файлов классов» немного ниже, если это необходимо для вашей среды выполнения.Обновлять:Я проверил Eclipse, но он жалуется, если я устанавливаю совместимость источника на 1,6 и совместимость классов на 1,5.Если версия 1.6 не разрешена, я обычно вручную комментирую оскорбительные аннотации @Override в источнике (что не помогает в вашем случае).
Обновление2:Если вы выполняете только ручную сборку, вы можете написать небольшую программу, которая копирует исходный проект в новый, удаляет аннотации @Override из источников Java и просто нажимает «Очистить проект» в Eclipse.
Вы также можете попробовать Retroweaver, чтобы создать версию Java5 из классов Java6.
Используйте Eclipse для поиска и замены (удаления) всех экземпляров «@Override».Затем добавьте обратно переопределения, не связанные с интерфейсом, с помощью «Очистки».
Шаги:
- Выберите проекты или папки, содержащие исходные файлы.
- Перейдите в «Поиск > Поиск...» (Ctrl-H), чтобы открыть диалоговое окно поиска.
- Перейдите на вкладку «Поиск файлов».
- Введите «@Override» в поле «Содержит текст» и «*.java» в поле «Шаблоны имен файлов».Нажмите «Заменить...», затем «ОК», чтобы удалить все экземпляры «@Override».
- Перейдите в «Окно > Настройки > Java > Стиль кода > Очистить» и создайте новый профиль.
- Отредактируйте профиль и снимите все флажки, кроме «Отсутствующий код» > «Добавить отсутствующие аннотации» > @Override.Убедитесь, что флажок «Реализации методов интерфейса» снят.
- Выберите проекты или папки, содержащие исходные файлы.
- Выберите «Источник > Очистить...» (Alt+Shift+s, затем u), затем «Готово», чтобы вернуть переопределения, не связанные с интерфейсом.
Я понял вашу проблему, измените свой jdk с вашего jdk на версию больше 1,5.
Настройка проектов IDE для использования JRE Java 6 или выше иногда не устраняет ошибку eclipse.Для меня перезапуск Eclipe IDE помогло.
Даже после изменения параметра соответствия компилятора на 1.6 или 1.7 с вкладки Windows, затем prefernces, затем java, затем compiler и настройки соответствия компилятора, у меня все еще была эта проблема.Идея заключается в том, что мы нужно зайти в папку проекта, щелкните правой кнопкой мыши, Java и установить компилятор соблюдение 1.6 или выше.У меня это сработало.