Предварительные условия аннотации checknotnull выдают нулевые предупреждения - PullRequest
0 голосов
/ 19 сентября 2019

Следующая строка

final ProgramObject data =
            Preconditions.checkNotNull(datas.get(name), TEMPLATE, name);

выдает предупреждение в Android Studio

Предупреждение: (291, 44) Аргумент data.get (name) может быть нулевым

При взгляде на исходный код предварительных условий:

@CanIgnoreReturnValue
@NonNullDecl
public static <T extends Object> T checkNotNull(
  @NonNullDecl T obj, @NullableDecl String errorMessageTemplate, @NullableDecl Object p1) {
if (obj == null) {
  throw new NullPointerException(lenientFormat(errorMessageTemplate, p1));
}
return obj;

}

Похоже, что первый параметр не может получить нулевое значение.

Вот пиар, связанный с ним: https://github.com/google/guava/commit/a890c444e55973384d1370b56afe1a02e7db9c3c

Так что мне интересно:

  • Есть ли в Android-студии что-то, что я плохо настроил
  • Это ошибка в гуаве?

Очевидно, что если я делаю нулевую проверку, я подозреваю, что параметр может быть нулевым

1 Ответ

1 голос
/ 19 сентября 2019

Цель Preconditions.checkNotNull заключается в том, что его следует использовать только с переменными, которые, по вашему мнению, никогда не могут быть нулевыми - и вы хотите убедиться, что ваша вера верна, и выдать исключение, если вы ошиблись.

Настройка Guava работает так, как задумано.Возможно, вам будет целесообразно подавить предупреждение.

...