我错误地发布了问题。我在这里正确发布问题……
我收到一个 json 字符串作为 HTTP 响应。我知道它的结构。它是这样的:
public class Json<T> {
public Hits<T> hits;
}
public class Hits<T> {
public int found;
public int start;
public ArrayList<Hit<T>> hit;
}
public class Hit<T> {
public String id;
public Class<T> data;
}
“数据”字段可以属于任何类。我只会在运行时知道它。我会把它作为参数。这就是我反序列化的方式。
public <T> void deSerialize(Class<T> clazz) {
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(jsonString, new TypeReference<Json<T>>() {});
}
但我收到一个错误 -
无法从 java.lang.class 访问私有 java.lang.class.Class()。无法设置访问权限。无法使 java.lang.Class 构造函数可访问
原文由 gnjago 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果通用类型仅动态可用,您将需要显式构建
JavaType
: