【发布时间】:2019-02-03 21:17:09
【问题描述】:
这是获取改造响应作为对象的代码。下面的方法工作正常,但我需要一个通用函数来执行上述功能,即类名可能会有所不同。 (例如)门票、价格、代币、约会这样的:
processGETRequest(AppController.getApiHelper().searchTickets(from, to), new RetrofitListener() {
@Override
public void onSuccess(Object object) { }
@Override
public void onSuccess(List<Object> object) {
// Here I'm getting retrofit response as a object //
if (object != null) {
// Below method is working fine //
List<Ticket> ticketList = new ArrayList<>();
for (Object result : object) {
String json = new Gson().toJson(result);
Ticket model = new Gson().fromJson(json, Ticket.class);
ticketList.add(model);
}
// I need an one common function for performing above functionality
// i.e the Class name may vary.. (e.g) Ticket, Price, Token, Appointment like this.
}
}
@Override
public void onError(String error) {
Log.d("error: ", " " + error);
}
}, false);
RetrofitListener 接口很简单:
public interface RetrofitListener {
void onSuccess(Object object);
void onSuccess(List<Object> object);
void onError(String error);
}
【问题讨论】:
-
另外,为什么要解析 JSON?您可以将结果转换为票证。
ticketList.add((Ticket) result); -
我写了一个常用的方法来获取所有的 api,所以我把改造的所有响应收集为一个对象/对象列表。然后我将结果解析为上面写的所需类
-
你是在用retrofit 2吗,能把服务类和RetrofitListener类贴出来
标签: java android list object generics