杰克逊和通用类型

时间:2014-04-29 11:05:12

标签: java android

我使用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
}

0 个答案:

没有答案