私はAPIからの応答を取得し、その値を以下のように定数に保存するためにRetrofit 2を使用しています
if(response.isSuccessful()) {
constant.banner_on = response.body().getBanner_on();
constant.int_on = response.body().getInt_on();
constant.int_click = response.body().getInt_click();
}
以下のような3つすべてに警告を与えます
Method invocation getBanner_on may produce Java.lang.nullPointerException
私は混乱しており、この警告を解決できません。誰かが私がこれから出てくるのを助けることができるかどうか私に知らせてください。
ありがとう
応答が成功した場合にnullになることはないため、これは単なる警告です。これを無視するか、if(response.body() != null)
をラップして警告を削除できます。
Ads ads = response.body();
if(ads != null){
constant.banner_on = ads.getBanner_on();
// and so on.
}
このnull
ポインターチェックを使用するだけです。
If(response != null && response.isSuccessfull())
{
// body
}
例外の一部を防ぐために、応答ハンドルnull pointer exception
から値を割り当てる前の良い習慣です。また、try
とcatch
を使用して他の例外を処理することもできます。
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();
}
}