Подавить предупреждение "переменная никогда не назначается" в IntelliJ IDEA
Мы широко используем рефлексию для установки значений полей класса в нашем коде. Поля доступны в коде, но они никогда не назначаются, кроме как с помощью отражения. Таким образом, IDEA отображает предупреждение "никогда не назначается". Если я прошу IDEA отменить проверку, он вставляет
@SuppressWarnings({"UnusedDeclaration"})
но это также отключает проверку того, используется ли поле или нет, что нам не нужно.
Можно ли как-то отключить только проверку "не назначено" и оставить проверку "не используется" только для определенных полей?
ИДЕЯ версия 10,5
5 ответов
Вы можете использовать аннотацию, чтобы пометить ее как введенное поле. (похоже на то, как это будет относиться @EJB
). Проверки IntelliJ (по крайней мере, в версии 10.5) позволяют вам настроить свои собственные аннотации, чтобы пометить поля как внедренные.
Выберите "Анализ", "Проверить код" в меню, а затем перейдите к проверке неиспользованной декларации, и вы сможете настроить аннотацию.
- выполнить анализ: Analyse > Inpect Code...
- Щелкните правой кнопкой мыши на Неиспользуемой декларации (под узлом дерева избыточности Декларации).
- Нажмите на "Настроить аннотации..."
- Добавьте com.google.google.inject.Inject и javax.inject.Inject
Чтобы настроить аннотации в Android Studio 1.1.0 после проверки кода, щелкните правой кнопкой мыши Неиспользуемое объявление -> Изменить настройки -> Настроить аннотации.
Настройки -> Редактор -> Инспекции -> Избыточность декларации -> Неиспользованная декларация -> Точки входа -> Аннотации
Откроется новое всплывающее окно, разделенное на 2 разные области: "Отметить как точку входа, если аннотировано" и "Отметить поле как неявно написанное, если аннотировано". Только в последнем случае вы щелкаете значок "+" (Добавить класс аннотации) и выбираете аннотацию Autowired (или любую другую аннотацию, которую вы используете для внедрения зависимости).
Это отключит предупреждение "частное поле никогда не назначается", но не отключит предупреждение "частное поле никогда не используется", если вы никогда не используете поле в коде класса, что является желательным поведением.
Это работало на IntelliJ IDEA Community Edition 2018.3.3
Если вы откроете окно с подсказками действий (alt + Enter на Mac), вам будет предложено отключить предупреждение для добавления комментариев.
Нет, похоже, что инспекция IDEA не настолько мелкозернистая. Даже при использовании полей, основанных на аннотациях, одно и то же предупреждение может быть отключено для полей, помеченных как @Inject
, Автоматически предупреждение "не используется" подавляется.
Я только что попытался запустить FindBugs-IDEA против класса, и не было выдано ни одного предупреждения или ошибки.
Возможно, приватная переменная была неинициализирована. Я не инициализировал переменную в androidStudio, поэтому покажите мне сообщение "никогда не назначается""