我使用Jackson反序列化这样的通用类型:
ListResponse<Product> = objectMapper.readValue(json, new TypeReference<ListResponse<Product>>() {});
ListResponse<User> = objectMapper.readValue(json, new TypeReference<ListResponse<User>>() {});
对于ListResponse
将包含的每种通用类型,等等
这工作正常,但我想创建一个方法,将参数作为泛型类型,并返回该泛型类型的ListResponse
。
这样的事情:
public static <T> T fromJsonWithListResponse(String json) {
return objectMapper.readValue(json, new TypeReference<ListResponse<T>>(){});
}
或者这个:
public static <T> T fromJsonWithListResponse(final Class<T> clazz, String json) {
return objectMapper.readValue(json, new TypeReference<clazz>(){}); // compile error
}
但它会将结果转换为LinkedHashMap
。
ListResponse
是围绕List
的包装类:
public class ListResponse<T> extends Response {
private List<T> items;
// other fields
// getters and setters
}