Могу ли я сделать аннотацию Java, которая «расширяет» @SuppressWarnings? - PullRequest
8 голосов
/ 30 декабря 2011

Я знаю, что невозможно расширять аннотации Java .

Я создал аннотацию для частного поля, что означает, что поле, скорее всего, окажется неиспользованным в классе вкоторый объявлен.По этой причине я получаю много предупреждений о «неиспользуемых полях» в моих аннотированных полях.

Можно ли как-нибудь дать моей аннотации поведение @SuppressWarnings("unused"), поэтому мне не нужно вдвойне-Аннотируйте каждое поле, которое имеет @MyAnnotation?

1 Ответ

0 голосов
/ 27 января 2018

Быстрый ответ "нет".Компилятор Java ничего не знает о вашей аннотации, поэтому он не будет обрабатывать ее так, как вы хотите.


Но честный ответ - «да».В этой статье вы можете найти подробное описание того, как написать плагин компилятора.Скорее всего, вы можете написать плагин, который, в случае обнаружения вашей аннотации, обработает его и не передаст поле неиспользованному контролеру.

...