Между Java 5 и Java 6 правила, касающиеся аннотаций @Override
для методов, происходящих из интерфейсов (в отличие от суперклассов), были изменены — раньше они не разрешались, а после стали разрешены. Однако они не требуютсядля javac.
Некоторые IDE, такие как eclipse, могут генерировать ошибки или предупреждения для таких отсутствующих переопределений. Я ищу любой инструмент статического анализа, который может обнаруживать отсутствующие переопределения, чтобы я мог сообщать/блокировать их программно.
Не похоже, чтобы какие-либо из известных мне крупных программ, таких как findbugs и другие, не могли это сделать — возможно, потому, что @Override
имеет только уровень сохранения исходного кода, поэтому отсутствует в . class, с которыми работают эти инструменты, и инструменты уровня исходного кода, такие как checkstyle, не понимают полной иерархии классов.