以下行
final ProgramObject data =
Preconditions.checkNotNull(datas.get(name), TEMPLATE, name);
在 android studio 中发出警告
警告:(291, 44) 参数 'data.get(name)' 可能为空
在查看 Preconditions 的源代码时:
@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;
}
看起来第一个参数不允许为空。
这是与之相关的 PR: https ://github.com/google/guava/commit/a890c444e55973384d1370b56afe1a02e7db9c3c
所以我想知道:
- Android Studio 中是否有一些我没有配置好的东西
- 这是番石榴中的错误吗?
显然,如果我进行空检查,我怀疑参数可以为空