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


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

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

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

10 128

10 ответов:

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

убедитесь, что ваши проекты IDE настроены на использование Java 6 JRE и что "совместимость с исходным кодом" установлена в 1.6 или выше. Откройте диалоговое окно окно > настройки и перейдите к Java > компилятор. Там вы можете установить "уровень соответствия компилятора" в 1.6.

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


обновление:

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

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

проект - > свойства - > компилятор java ->

включить конкретные настройки проекта-да Соответствие компилятора - 1.6 сгенерированные файлы классов и совместимость с источниками-1.5

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

параметры проекта могут быть включены. Выберите свой проект Project > Properties > Java Compiler,uncheck the 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и Eclipse. Это сработало для меня

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

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

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

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

действия:

  1. выбрать проекты или папки, содержащие исходные файлы.
  2. перейти к "Поиск > Поиск..."(Ctrl-H), чтобы открыть диалоговое окно поиска.
  3. перейдите на вкладку "поиск файла".
  4. введите " @Override "в поле" содержащий текст "и"*.java "в разделе" Шаблоны имен файлов". Нажмите Кнопку " Заменить...", затем "ОК", чтобы удалить все экземпляры"@Override".
  5. перейдите в" окно > настройки > Java > стиль кода > очистка " и создайте новый профиль.
  6. отредактируйте профиль и снимите все флажки, кроме "отсутствует код > добавить отсутствующие аннотации > @Override". Убедитесь, что флажок "реализация методов интерфейса" снят.
  7. выбрать проекты или папки, содержащие исходные файлы.
  8. Выберите " Источник > Очистка..."(Alt + Shift+s, затем u), затем "Готово" к добавьте обратно неинтерфейсные переопределения.

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

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

даже после изменения параметра соответствия компилятора на 1.6 или 1.7 от вкладке Windows, а затем prefernces, потом Ява, потом компилятора и установка соответствие компилятора, у меня все еще была эта проблема. Идея заключается в том, что мы нужно зайти в папку проекта, щелкните правой кнопкой мыши, Java и установить компилятор соответствие 1.6 или выше. Это сработало для меня.