![](/img/trans.png)
[英]Retrofit Android: Method invocation 'getSuccess' may produce 'java.lang.NullPointerException'
[英]Retrofit Method invocation may produce 'java.lang.NullPointerException'
来自Response文档 :
@Nullable public T body()
成功响应的反序列化响应主体。
这意味着response.body()
可以返回null,因此,调用response.body().getItems()
可以抛出NullPointerException
。 要避免出现警告消息,请在对其调用方法之前检查response.body() != null
。
关于另一个问题的讨论表明,我上面的陈述并不像他们需要的那样清楚。 如果原始代码是:
mAdapter.addItems(response.body().getItems());
包装在这样的null检查中不会解决它:
if (response.body() != null) {
mAdapter.addItems(response.body().getItems());
}
linter(生成警告的东西)无法知道每个response.body()
调用将返回相同的值,因此第二个仍然会被标记。 使用局部变量来解决这个问题:
MyClass body = response.body();
if (body != null) {
mAdapter.addItems(body.getItems());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.