发生这种情况的各种原因将在此处和此处进行讨论。我不一定与理由同意,但杰克逊,因为类型擦除,并不 蝙蝠
知道元素的类型
List(或
Collection或
Map)含有。它选择使用一个不解释注释的简单序列化器。
在这些链接中建议使用两个选项:
首先,您可以创建一个实现
List<Cat>,适当实例化并序列化实例的类。
class CatList implements List<Cat> {...}通用类型参数
Cat不会丢失。杰克逊可以访问并使用它。
其次,您可以实例化
ObjectWritertype 并将其使用
List<Cat>。例如
System.out.println(new ObjectMapper().writerFor(new TypeReference<List<Cat>>() {}).writevalueAsString(list));将打印
[{"@type":"cat","name":"heyo"}]


