3 回答

TA贡献1775条经验 获得超11个赞
您可以使用类似于以下内容的静态函数:
static <T> List<T> toList(List<Object> object, Class<T> desiredClass) {
List<T> transformedList = new ArrayList<>();
if (object != null) {
for (Object result : object) {
String json = new Gson().toJson(result);
T model = new Gson().fromJson(json, desiredClass);
transformedList.add(model);
}
}
return transformedList;
}
基本上,您只需要确保提供所需的类型(例如desiredClass)并在fromJson.
示例用法:
List<Ticket> ticketList = toList(object, Ticket.class);
List<Price> priceList = toList(object, Price.class);
请注意,通过将 移动object != null到toList-method 中,您无需关心传递给该方法的内容。作为回报,您至少会得到一个空列表。

TA贡献1900条经验 获得超5个赞
您可以转换代码段
if (object != null) {
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);
}
}
像这样的泛型
<T> void check(Class<T> type, List<Object> object) {
List<T> ticketList = new ArrayList<>();
for (Object result : object) {
String json = new Gson().toJson(result);
T model = new Gson().fromJson(json, type);
ticketList.add(model);
}
}

TA贡献1829条经验 获得超7个赞
<T> List<T> getList(Class<T> type, List<Object> object) {
return object.stream()
.map(result -> new Gson().toJson(result))
.map(new Gson().fromJson(json, type))
.collect(Collectors.toList());
}
List<Ticket> ticketList = getList(Ticket.class, object);
这将完成您的 for 循环所做的工作。
添加回答
举报