В модификации на карте JSon ответ на Pojo обычно мы делаем этоAndroid: динамически передать класс модели для модификации обратного вызова
@POST
Call<User> getDataFromServer(@Url String url, @Body HashMap<String,Object> hashMap);
ApiCalls api = retrofit.create(ApiCalls.class);
Call<User> call = api.getDataFromServer(StringConstants.URL,hashMap);
call.enqueue(new Callback<User>() {
//Response and failure callbacks
}
где Пользователь мой класс Pojo. Но для каждого другого запроса мне нужно сделать другое pojo и написать тот же код для переназначения вызова. Я хочу сделать один метод для вызова api и передать соответствующий класс pojo для перенастройки вызова. как этот
ApiCalls api = retrofit.create(ApiCalls.class);
Call<*ClassPassed*> call = api.getDataFromServer(StringConstants.URL,hashMap);
call.enqueue(new Callback<*ClassPassed*>() {
//Response and failure callbacks
}
так что теперь я могу любой POJO класс один метод и получить response.This только, чтобы избежать перезаписи снова тот же код и again.is это возможно
Update Выработать больше:
Предположим, мне нужно сделать два запроса. Первый заключается в том, чтобы получить userDetails, а другой - с терпеливымDetails.So мне нужно создать два класса модели User и Patient. Таким образом, в модифицированной апи я буду иметь что-то вроде этого
@POST
Call<User> getDataFromServer(@Url String url, @Body HashMap<String,Object> hashMap);
@POST
Call<Patient> getDataFromServer(@Url String url, @Body HashMap<String,Object> hashMap);
и в моем FragmentUser и классе FragmentPatient я буду делать это
ApiCalls api = retrofit.create(ApiCalls.class);
Call<User> call = api.getDataFromServer(StringConstants.URL,hashMap);
call.enqueue(new Callback<User>() {
//Response and failure callbacks
}
ApiCalls api = retrofit.create(ApiCalls.class);
Call<Patient> call = api.getDataFromServer(StringConstants.URL,hashMap);
call.enqueue(new Callback<Patient>() {
//Response and failure callbacks
}
, но здесь код repaeting просто: Из-разные классы pojo. Мне нужно повторить один и тот же код во всех других фрагментах для разных запросов. Так что мне нужно сделать общий метод, где он может принять любой класс pojo, а затем из фрагмента я просто передам pojo для сопоставления.
Что? Это именно то, что Retrofit пытается ПРЕДОТВРАТИТЬ! если вы хотите сделать что-то вроде этого, лучше использовать другую библиотеку или просто OkHttp без Retrofit или использовать Ion/Volley/Some other random http lib – Bhargav
@sushildlh: обновите вопрос, пожалуйста, проверьте. –
@Androidjack посмотрите на ответ, я думаю, это поможет вам .... – sushildlh