Предупреждение "Переменная никогда не назначается" в IntelliJ IDEA может подавляться только "частично"

Java EE + IntelliJ Идея 2016.3: я написал класс и объявил приватное поле с @Inject аннотаций. Я успешно избавился от уведомления "неиспользованная декларация" из окна "Результаты проверки", добавив javax.inject.Inject в настройки -> редактор -> инспекции -> java -> избыточность объявлений -> неиспользуемые объявления -> точки входа -> аннотации -> пометить поле как неявно написанное при аннотировании (на основе этого поста). К сожалению, поле все еще подчеркнуто, и на полосе прокрутки присутствует желтый маркер. Я настраиваю это отдельно или я делаю что-то не так?

5 ответов

Решение

Есть два отдельных предупреждения. Один говорит, что полю никогда не присваивалось значение, которое вы отключили. Другой говорит, что поле никогда не использовалось, и это предупреждение, которое вы получаете.

добавлять Inject в настройки -> редактор -> проверки -> java -> избыточность объявления -> неиспользованные объявления -> точки входа -> аннотации -> пометить как точку входа, если аннотировано

Выделите поле, введите Alt + Enter "Windows" или Mac "Mac" или просто нажмите на лампочку. Выберите "Подавить поля, аннотированные {имя аннотации}".

Вы можете просто игнорировать это в некоторых случаях, когда это действительно имеет смысл,

https://i.stack.imgur.com/ihdp3.png

Что вы можете сделать, так это навести указатель мыши на пораженную область и нажать Alt+ Enter в "Windows" или alt/option/⌥+ Enter в "Mac" и выбрать его подавление.

Ты увидишь,

https://i.stack.imgur.com/3bSYa.png

Похоже, это была ошибка в IDEA. Я только что обновился до IDEA 2016.3.1 и сейчас @Inject а также @Resource аннотации, помещенные в раздел "точки входа", не работают - их необходимо поместить в окно "полей" (хотя, когда они находятся в разделе "точки входа", я все еще могу наблюдать "старое" поведение, то есть аннотированные поля не обнаруживаются) при проверке кода еще они подчеркнуты в редакторе и виден желтый маркер).

Обновление 2023

У меня была эта проблема сейчас, но теперь экраны выглядят по-другому:

  • я не нашелSupress unused warning if annotated...
  • Теперь он названAssmue fields annotated by ...@Autowired as implicitly written

И сначала вариант не появился. Мне пришлось выбрать имя переменной вместо типа.

Другие вопросы по тегам