java如何使用JSONB在没有setter的情况下解组/反序列化集合
我喜欢写我的POJO,不需要为集合设置setter
public class Parent {
private List<Child> children;
public List<Child> getChildren() {
if (children == null) {
children = new ArrayList<Child>();
}
return children;
}
}
// use case example
public class ParentDecorator {
private final Parent parent;
public ParentDecorator(Parent parent) {
this.parent = parent;
}
public void addAll(List<Child> children) {
parent.getChildren().addAll(children);
}
}
JSON-B序列化工作正常,但反序列化不起作用,因为没有用于子级的setter
问题:我应该如何解决这个问题
# 1 楼答案
亚当·边写了一篇很好的文章,我认为这篇文章可以解决这个问题。其想法是为私有字段实现一个自定义
PropertyVisibilityStrategy
。不幸的是,由于某种原因,它在我的情况下不起作用我对Adam的代码做了一个小小的修改,也修改了方法使其可见。现在我的收藏被反序列化了
正如名称所示,我只使用这个
PropertyVisibilityStrategy
进行反序列化。序列化使用默认配置完成