Добавить предупреждение об отсутствии аннотации @Override для реализации интерфейса в Eclipse

Как в Eclipse 3.4.1 с использованием JDK1.6.0_10 активировать предупреждение об отсутствующей аннотации @Override в методе, реализующем метод интерфейса?

В окне настроек эта опция:

Java > Compiler > Errors / Warnings > Annotations > Missing '@Override' annotation

отлично работает с отсутствующими аннотациями к методам, которые переопределяют метод суперкласса, но ничего не делает для методов интерфейса.

Java 5 и Java 6 имеют разные ожидания в отношении аннотаций @Override в реализациях интерфейса. Я не помню, как это повлияет на Eclipse, но я знаю, что это так.

Bill Michell 22.10.2008 13:31

Я должен был упомянуть об этом. Добавил в вопрос версию Java (6).

Benno Richters 22.10.2008 13:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
11
2
14 374
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Возможно, мне что-то не хватает, но методы интерфейса уже должны быть реализованы классами реализации.

Компилятор выдаст ошибку, если интерфейс реализован не полностью.

Да, но вы все равно этого хотите. См. stackoverflow.com/questions/212614/…

Benno Richters 22.10.2008 13:17

Ах да, спасибо за указатель. Должно быть, я это пропустил, так как я все еще использую Java 1.5 на Mac OSX :-)

fhe 22.10.2008 14:54

Допускаю то, что я сказал в другой ветке. По-видимому, это не вариант компилятора, а проблема с версией совместимости Java: если ваша версия совместимости 5, вы не сможете аннотировать методы реализации интерфейса. Если ваша версия совместимости - 6, вы сможете это сделать.

Однако я не думаю, что есть способ заставить Eclipse генерировать ошибку, если вы не аннотируете каждый реализованный метод. От эта страница:

Missing '@Override' annotation: When enabled, the compiler will issue an error or a warning whenever it encounters a method overriding another implemented method, and the '@Override' annotation is missing.

Я использую java 6 (отредактировал вопрос, чтобы прояснить это. Должен был сделать это раньше).

Benno Richters 22.10.2008 13:56

знаете ли вы, можно ли это сделать в настоящее время в eclipse 4.4.1?

Aquarius Power 15.02.2015 08:42
Ответ принят как подходящий

В Eclipse 3.4.1 это невозможно. Это известная проблема. См. Эту страницу отчета об ошибке для получения дополнительной информации.

Настройка совместимости на 1,6 вместо 1,5 у меня работала: Eclipse Java EE IDE для веб-разработчиков.

Идентификатор сборки: 20100218-1602

Другие вопросы по теме