先决条件 checknotnull 注释产生空警告
Preconditions checknotnull annotations produce null warnings
下面一行
final ProgramObject data =
Preconditions.checkNotNull(datas.get(name), TEMPLATE, name);
在 android 工作室发出警告
Warning:(291, 44) Argument 'data.get(name)' might be null
在查看前提条件的源代码时:
@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;
}
第一个参数好像不能为null
这是与之关联的 PR:
https://github.com/google/guava/commit/a890c444e55973384d1370b56afe1a02e7db9c3c
所以我想知道:
- 是不是Android studio 里有什么东西我没配置好
- 这是番石榴中的错误吗?
显然,如果我进行空检查,我怀疑参数可能为空
Preconditions.checkNotNull
的目的是它应该只用于您认为永远不会为 null 的变量——并且您想确保您的信念是正确的,并且如果您是错了。
Guava 的设置工作正常。您可能适合取消警告。
下面一行
final ProgramObject data =
Preconditions.checkNotNull(datas.get(name), TEMPLATE, name);
在 android 工作室发出警告
Warning:(291, 44) Argument 'data.get(name)' might be null
在查看前提条件的源代码时:
@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;
}
第一个参数好像不能为null
这是与之关联的 PR: https://github.com/google/guava/commit/a890c444e55973384d1370b56afe1a02e7db9c3c
所以我想知道:
- 是不是Android studio 里有什么东西我没配置好
- 这是番石榴中的错误吗?
显然,如果我进行空检查,我怀疑参数可能为空
Preconditions.checkNotNull
的目的是它应该只用于您认为永远不会为 null 的变量——并且您想确保您的信念是正确的,并且如果您是错了。
Guava 的设置工作正常。您可能适合取消警告。