为了解析一些 web 服务结果,我有一个 Jackson 可以像这样解析的 java bean:
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(in, ResultPage.class);
现在,在我的 ResultPage 中,除了其他数据之外,我还有一个结果列表(我想要的有效负载)。根据提供结果的查询,列出的文档类型可能会有所不同(文档、标签、关键字等),但一般列表格式不会改变。因此,我将 ResultPage bean 设置为通用类型,其中包含结果列表,如下所示:
public class ResultPage<T> {
...
private List<T> results;
...
}
下一步我必须在提供这种类型时调用解析器,但我迷路了
public <T> ResultPage<T> parseResultPage(InputStream in, Class<T> valueType) throws IOException {
return mapper.readValue(in, ResultPage<valueType>.class);
}
此外,这个(看似更简单的尝试)对我来说无法编译:
ResultPage<Tag> rp = mapper.readValue(responseEntity.getContent(), ResultPage<Tag>.class);
我怎样才能使这样的设置发挥作用?
使用
TypeReference
: