Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
改造Android:方法调用';getSuccess';可能产生';java.lang.NullPointerException';_Java_Android_Nullpointerexception_Retrofit - Fatal编程技术网

改造Android:方法调用';getSuccess';可能产生';java.lang.NullPointerException';

改造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

我使用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) {
            ................
@覆盖
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:我已经试过了,但不起作用。相同的警告显示