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