как работает аннотация Java @Suppresswarnings? - PullRequest
0 голосов
/ 02 ноября 2019

Я прочитал Мышление на Java , в котором я знаю AnnotationProcessor Используйте Reflection для разрешения аннотации.

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

Но я не знаю, прав ли я, и если нет, то как это работает?

Большое спасибо, я новичок.

1 Ответ

2 голосов
/ 04 ноября 2019

Обычно процессор аннотаций не использует Reflection, так как он предназначен для использования во время компиляции. Вместо этого он получает абстракцию модели исходного кода компилятора, подробнее см. модуль java.compiler .

Однако, поскольку поддержка аннотации @SuppressWarnings составляет Обязательный согласно спецификации языка , он вряд ли будет поставляться с компилятором в форме внешнего процессора аннотаций. Вместо этого поддержка будет непосредственно встроена в сам компилятор.

В противном случае компилятору необходимо было предоставить дополнительный API для управления предупреждениями, просто чтобы обеспечить обработчику аннотаций, принимающему значения аннотации и возвращающему их обратно. в дополнительный API. Это было бы ненужным осложнением без дополнительной ценности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...