从方法返回泛型类型化对象。获取类<SomeType>而不是某种类型



我正在编写一个方法来反序列化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)...

如果你想提供一个类。

相关内容

  • 没有找到相关文章

最新更新