代码之家  ›  专栏  ›  技术社区  ›  Ameer

改造Android:方法调用“getSuccess”可能会产生“java”。lang.NullPointerException'

  •  0
  • Ameer  · 技术社区  · 7 年前

    我正在使用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() .

    我使用的是改装版:2.3.0和gson:2.8.1。 我已经试过这个问题的解决方法了( Retrofit Method invocation may produce 'java.lang.NullPointerException'

    1 回复  |  直到 7 年前
        1
  •  2
  •   Ben P.    7 年前

    方法 Response.body() 声明为 @Nullable 注释,这意味着其返回值可能为null。如果要避免此警告,必须在调用方法之前检查返回值是否为null。

    您的问题包括以下代码:

    if (response.body() != null && response.body().getSuccess() == 1)
    

    body()

    ResultList body = response.body();
    if (body != null && body.getSuccess() == 1) {
        ...
    }