Eclipse игнорирует некорректные аннотации @Override - PullRequest
7 голосов
/ 10 сентября 2009

По какой-то причине одна из моих установок Eclipse игнорирует неправильно установленные @Override аннотации. Например, если я добавлю @Override к методу, который не переопределяется, он просто полностью его игнорирует.

Любые идеи о том, как вернуть его в состояние, когда он будет отображать ошибку для неправильно аннотированного метода?

Ответы [ 3 ]

12 голосов
/ 14 сентября 2009

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

2 голосов
/ 14 сентября 2009

Моя теория состоит в том, что ваш Eclipse настроен на соответствие JDK 1.6, но ваша сборка Ant (или что-то еще) компилируется с помощью компилятора JDK 1.5.

Произошло изменение в аннотации @Override между JDK 1.5. и 1.6. В версии 1.5 его можно использовать только тогда, когда конкретный метод фактически перекрывает конкретный метод в суперклассе. В JDK 1.6 его также можно использовать, когда аннотированный метод реализует абстрактный метод, определенный в интерфейсе или суперклассе.

Чтобы установить уровень соответствия Eclipse, откройте Windows> Предпочтения, выберите панель Java> Компилятор и измените значение параметра «Соответствие компилятора Java» на 1,5. Затем нажмите Применить или OK, чтобы применить изменение предпочтения.

(AFAIK, нет способа заставить Eclipse выдавать вам 1,5 предупреждения стиля в режиме соответствия 1.6.)

0 голосов
/ 10 сентября 2009

Аннотация @override была введена в JDK> 1.5.

На этой машине вы случайно не используете более старую версию JDK?

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