Ответ 1
Определение @Override
слегка изменилось в Java 6 (и к несчастью без надлежащей документации), в котором аннотация @Override
по методу который реализует метод интерфейса. В Java 5, который считался ошибкой.
По какой-то причине одна из моих установок eclipse игнорирует неправильные аннотации @Override
. Например, если я положил @Override
на метод, который не переопределен, он просто полностью игнорирует его.
Любые идеи о том, как вернуть его в состояние, в котором будет отображаться ошибка для некорректно аннотированного метода?
Определение @Override
слегка изменилось в Java 6 (и к несчастью без надлежащей документации), в котором аннотация @Override
по методу который реализует метод интерфейса. В Java 5, который считался ошибкой.
Моя теория заключается в том, что ваш 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. Затем используйте Apply или OK, чтобы применить изменение предпочтений.
(AFAIK, нет возможности получить Eclipse, чтобы дать вам 1.5 предупреждения стиля в режиме соблюдения 1.6).
Аннотации @override были введены в JDK > 1.5.
На этой машине вы бы случайно использовали старую версию JDK?