it-swarm.com.de

Der Aufruf der Methode kann zu einem NullPointerException Retrofit Body führen

Ich verwende Retrofit 2, um eine Antwort von meiner API zu erhalten und den Wert in meiner Konstanten wie unten zu speichern

if(response.isSuccessful()) {
                    constant.banner_on = response.body().getBanner_on();
                    constant.int_on = response.body().getInt_on();
                    constant.int_click = response.body().getInt_click();
                }

es warnt mich alle drei wie unten

Method invocation getBanner_on may produce Java.lang.nullPointerException

Ich bin verwirrt und kann diese Warnung nicht beheben. Lassen Sie mich wissen, ob mir jemand helfen kann, daraus zu kommen.

Vielen Dank

4
Priya

Es handelt sich lediglich um eine Warnung, da sie bei einer erfolgreichen Antwort niemals null sein wird. Sie können es ignorieren oder if(response.body() != null) umschließen, um die Warnung zu entfernen.

Ads ads = response.body();
if(ads != null){
    constant.banner_on = ads.getBanner_on();
    // and so on.
}
7
Nabin Bhandari

Verwenden Sie einfach diese null-Zeigerprüfung.

If(response != null && response.isSuccessfull())
{

// body

}
0
emilpmp

Es ist eine gute Angewohnheit, vor dem Zuweisen von Werten aus der Antwort null pointer exception einige Ausnahmen zu verhindern. Sie können auch try und catch verwenden, um andere Ausnahmen zu behandeln. 

 if(response.isSuccessful()) {
    try {
         if(response.body() != null){
                constant.banner_on = response.body().getBanner_on();
                constant.int_on = response.body().getInt_on();
                constant.int_click = response.body().getInt_click();
           }
     } catch (IOException e) {
        e.printStackTrace();
     }
   }
0
Upendra Shah