我使用Retroft和GSON来解析响应。
我的onResponse
代码如下所示
@Override
public void onResponse(@NonNull Call<ResultList> call, @NonNull Response<ResultList> response) {
if (response.isSuccessful()) {
if (response.body() != null && response.body().getSuccess() == 1) {
................
我正在检查response.body() != null
和response.isSuccessful()
。
我仍在线上response.body().getSuccess()
的Android工作室收到警告。
如何避免此警告?
我正在使用改装:2.3.0和gson:2.8.1。 我已经尝试过这个问题的解决方案(Retrofit Method invocation may produce 'java.lang.NullPointerException' )。但它无法正常工作
答案 0 :(得分:2)
方法Response.body()
使用@Nullable
注释声明,这意味着它的返回值可能为null。如果要避免此警告,则必须在调用方法之前检查返回的值是否为null。
您的问题包括以下代码:
if (response.body() != null && response.body().getSuccess() == 1)
听起来你希望这会删除警告,但事实并非如此。这是因为linter无法知道body()
的第二次调用将返回与第一次调用相同的值。相反,写下这个:
ResultList body = response.body();
if (body != null && body.getSuccess() == 1) {
...
}