Подавить предупреждение "переменная никогда не назначается" в IntelliJ IDEA - PullRequest
46 голосов
/ 20 июля 2011

Мы широко используем рефлексию для установки значений полей класса в нашем коде. Поля доступны в коде, но они никогда не назначаются, кроме как с помощью отражения. Таким образом, IDEA отображает предупреждение «никогда не назначается». Если я прошу IDEA отменить проверку, он вставит

@SuppressWarnings({"UnusedDeclaration"})

но это также отключает проверку того, используется ли поле или нет, что нам не нужно.

Можно ли в любом случае отключить только проверку "не назначено" и оставить проверку "неиспользованной" только для определенных полей?

ИДЕЯ версия 10,5

Ответы [ 6 ]

46 голосов
/ 20 июля 2011

Вы можете использовать аннотацию, чтобы пометить ее как введенное поле. (аналогично тому, как это будет относиться @EJB). Проверки IntelliJ (по крайней мере, в версии 10.5) позволяют вам настраивать свои собственные аннотации, чтобы помечать поля как внедренные.

Выберите «Анализировать, проверить код» в меню, а затем перейдите к проверке неиспользованной декларации, и вы сможете настроить аннотацию.

22 голосов
/ 18 мая 2014
  1. выполнить анализ: Анализ> Проверить код ...
  2. Щелкните правой кнопкой мыши Неиспользованное объявление (под узлом дерева избыточности)
  3. Нажмите «Настроить аннотации ...»
  4. Добавьте com.google.google.inject.Inject и javax.inject.Inject
9 голосов
/ 30 марта 2015

Чтобы настроить аннотации в Android Studio 1.1.0 после проверки кода, щелкните правой кнопкой мыши Неиспользуемое объявление -> Изменить настройки -> Настроить аннотации.

Android Studio 1.1.0

Android Studio 1.1.0

5 голосов
/ 23 ноября 2015

Если вы открываете окно с подсказками действий (alt + Enter на Mac), вам следует предложить отключить предупреждение для инъекции аннотации

4 голосов
/ 20 июля 2011

Нет, похоже, что инспекция IDEA не настолько мелкозернистая.Даже с полями, основанными на аннотациях, введенных зависимостями, одно и то же предупреждение может быть подавлено для полей, помеченных @Inject.Автоматически предупреждение «не используется» подавляется.

Я только что попытался запустить FindBugs-IDEA для класса, и не было выдано ни одного предупреждения или ошибки.

0 голосов
/ 10 мая 2019

Настройки -> Редактор -> Проверки -> Избыточность декларации -> Неиспользованная декларация -> Точки входа -> Аннотации

Открывается новое всплывающее окно, разбитое на 2 области: «Пометить как точку входа, если она помечена» и «Пометить поле как неявно написанное, если оно помечено». Только в последнем вы нажимаете значок «+» (Добавить класс аннотаций) и выбираете аннотацию с автопроводкой (или любую аннотацию, которую вы используете для внедрения зависимости).

Это отключит предупреждение «личное поле никогда не назначается», но не отключит предупреждение «личное поле никогда не используется» в случае, если вы никогда не используете поле в коде класса, что является желательным поведением.

Это работало в IntelliJ IDEA Community Edition 2018.3.3

...