我正在编写一个方法来反序列化json响应,如下所示:
public <T> T parse(T t) throws IOException {
ObjectMapper mapper = getMapper(contentType);
T o = (T) mapper.readValue(getMethod.getResponseBodyAsStream(), t.getClass());
return o;
}
我的期望是使用上述方法:
SomeType object = parse(SomeType.class);
然而,IDE告诉我parse
方法返回Class<SomeType>
。我该如何修复它?我研究了ObjectMapper的实现。readValue(在Jackson库中),但我认为我不需要那么复杂。
我猜这应该行得通
public <T> T parse(Class<T> classType) throws Exception {
ObjectMapper mapper = getMapper(contentType);
T o = mapper.readValue(getMethod.getResponseBodyAsStream(), classType);
return o;
}
修改方法签名:
public <T> T parse(T t)...
public <T> T parse(Class<T> t)...
如果你想提供一个类。