Как статически обнаружить отсутствующие аннотации @Override?

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

Некоторые IDE, такие как eclipse, могут генерировать ошибки или предупреждения для таких отсутствующих переопределений. Я ищу любой инструмент статического анализа, который может обнаруживать отсутствующие переопределения, чтобы я мог сообщать/блокировать их программно.

Не похоже, чтобы какие-либо из известных мне крупных программ, таких как findbugs и другие, не могли это сделать — возможно, потому, что @Overrideимеет только уровень сохранения исходного кода, поэтому отсутствует в . class, с которыми работают эти инструменты, и инструменты уровня исходного кода, такие как checkstyle, не понимают полной иерархии классов.

10
задан Flow 7 February 2017 в 20:39
поделиться