改造Android:方法调用';getSuccess';可能产生';java.lang.NullPointerException';
我使用Retroft和GSON解析响应 我的改造Android:方法调用';getSuccess';可能产生';java.lang.NullPointerException';,java,android,nullpointerexception,retrofit,Java,Android,Nullpointerexception,Retrofit,我使用Retroft和GSON解析响应 我的onResponse代码如下 @Override public void onResponse(@NonNull Call<ResultList> call, @NonNull Response<ResultList> response) { if (response.isSuccessful()) { if (response.body() != null && response.bod
onResponse
代码如下
@Override
public void onResponse(@NonNull Call<ResultList> call, @NonNull Response<ResultList> response) {
if (response.isSuccessful()) {
if (response.body() != null && response.body().getSuccess() == 1) {
................
@覆盖
public void onResponse(@NonNull调用,@NonNull响应){
if(response.issusccessful()){
if(response.body()!=null&&response.body().getSuccess()=1){
................
我正在检查response.body()!=null
和response.issucessful()
。
但我还是在Android studio的在线response.body().getSuccess()
上收到了警告
如何避免这种警告
我使用的是改装版:2.3.0和gson:2.8.1。
我已经试过这个问题的解决办法了(
)。但它不起作用。方法
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) {
...
}
方法
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) {
...
}
参考:@Bapusaheb Shinde:我已经试过了,但不起作用。相同的警告显示参考:@Bapusaheb Shinde:我已经试过了,但不起作用。相同的警告显示