您需要显示更多代码,特别是有关如何调用反序列化的代码,但是从错误中我想您可能没有传递T的参数化。如果丢失了T,则只能假定T的类型为Object,标称类型为T。对象绑定到“本机”
Java类型,对于JSON对象,它是Map(特别是linkedHashMap以保留顺序)。
因此,您可能只需要在反序列化时指定对象的通用类型(对于序列化,由于可以使用运行时类型,因此不需要);通过使用TypeReference(不是普通类,因为它没有泛型类型信息),或通过构造启用了泛型的JavaType来实现。例如:
NSResponse<CheckStatusDetail> resp = mapper.readValue(json, new TypeReference<NSResponse<CheckStatusDetail>>() { });要么
NSResponse<CheckStatusDetail> resp = mapper.readValue(json, TypeFactory.genericType(NSResponse.class, CheckStatusDetails.class));
两者都起作用;如果type仅动态可用,则后者是必需的。



