Java 使用Jackson使用自定义比较器反序列化Guava类
我在我的一个类中使用Guava TreeMultiset来处理需要序列化/反序列化为排序多集的字段。我正在使用自定义比较器来构造TreeMultiset:Java 使用Jackson使用自定义比较器反序列化Guava类,java,json,jackson,guava,fasterxml,Java,Json,Jackson,Guava,Fasterxml,我在我的一个类中使用Guava TreeMultiset来处理需要序列化/反序列化为排序多集的字段。我正在使用自定义比较器来构造TreeMultiset: private SortedMultiset<UserFavCatsNode> ms = TreeMultiset.create(new customComparator()); private SortedMultiset ms=TreeMultiset.create(新建customComparator()); 序列化似乎
private SortedMultiset<UserFavCatsNode> ms = TreeMultiset.create(new customComparator());
private SortedMultiset ms=TreeMultiset.create(新建customComparator());
序列化似乎工作正常,但反序列化失败,因为Jackson无法访问自定义比较器来构造TreeMulistet实例。如何在反序列化时传递比较器实例?
我最初搜索并找到了两个选项:
public构造函数(@JsonDeserialize(as=CustomTreeMultiset.class)字段){
//
}
这个策略失败了,因为Guava TreeMultiset是final,我无法实现CustomTreeMultiset来扩展它以提供包装器反序列化类。有没有比向类中注入自定义排序逻辑更好的解决方案?不知道Jackson的情况,但一般来说,您几乎不必对任何东西进行子类化。因此,尝试使用您自己的策略转发多集。您找到解决方案了吗?