Я получаю исключение нулевого указателя. Я хочу получить случайную цитату из этого API котировок - https://quotes.rest/ для отображения в моем приложении для Android. Куда я иду не так?
(Я прошу прощения, если я не задал вопрос должным образом или нарушил какие-либо правила, опубликовав вопрос. Я впервые задаю вопрос)
Я создал необходимые POJO и попытался получить предложение в MainActivity.
GetDataService service = RetrofitClientInstance.getRetrofitInstance().create(GetDataService.class);
Call<Example> call = service.getRandomQuote();
call.enqueue(new Callback<Example>() {
@Override
public void onResponse(Call<Example> call, Response<Example> response) {
String quote = response.body().getContents().getQuotes().get(0).getQuote();
Log.d(TAG, "onResponse: ************" + quote);
}
GetDataService
public interface GetDataService {
@GET("/quote/random")
Call<Example> getRandomQuote();
}
POJO- Цитата
public class Quote {
@SerializedName("quote")
private String quote;
public Quote(String quote) {
this.quote = quote;
}
public String getQuote() {
return quote;
}
public void setQuote(String quote) {
this.quote = quote;
}
}
POJO- Содержание
public class Contents {
@SerializedName("quotes")
@Expose
private List<Quote> quotes;
public List<Quote> getQuotes() {
return quotes;
}
public void setQuotes(List<Quote> quotes) {
this.quotes = quotes;
}
}
POJO- Пример
public class Example {
@SerializedName("contents")
@Expose
private Contents contents;
public Contents getContents() {
return contents;
}
public void setContents(Contents contents) {
this.contents = contents;
}
}
класс RetrofitClientInstance
public class RetrofitClientInstance {
private static Retrofit retrofit = null;
private static final String BASE_URL = "https://quotes.rest";
public static Retrofit getRetrofitInstance(){
if(retrofit == null){
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}
Я ожидаю, что выходные данные будут случайными кавычками из этого API котировок (https://quotes.rest/), но я получаю исключение нулевого указателя. Ниже приведена ошибка-
java.lang.NullPointerException: Attempt to invoke virtual method 'com.platinumstudio.contactsdemo7.network.Contents com.platinumstudio.contactsdemo7.Example.getContents()' on a null object reference
at com.platinumstudio.contactsdemo7.MainActivity$3.onResponse(MainActivity.java)