java dozer 深度_java – Dozer深度映射设置为Set

免责声明:

Mapping deep properties with intermediate collections in dozer已经提出了同样的问题,但没有接受答案(我的案例没有正确答案).

所以问题.我有一个由ComplexObject组成的领域,如下所示

public class ComplexObject {

private Set inner;

... //other fields, setters and getters

}

public Class AnotherComplexObject {

private String property;

... //other fields, setters and getters

}

现在,我将ComplexObject映射到Target,其中Target具有Set< String>属性.

public class Target {

private Set targetString;

... //other fields, setters and getters

}

我想将每个ComplexObject inner.property映射到一个Target targetString.在语义上看起来像的东西(当然,这不起作用,属性不是Set和Dozer的成员生成MappingException):

ComplexObject

Target

inner.property

targetString

如果我将AnotherComplexObject的toString方法修改为,我可以实现我的目标

public class AnotherComplexObject {

public String toString(){

return property;

}

}

然后,Dozer将检测源Set是“type”AnotherComplexObject,而目标Set是String,并将在转换期间使用方法toString.不幸的是,这不是一个解决方案,因为我需要一个方法在我的POJO中让Dozer进行转换.

编写一个自定义转换器是什么工作,它会覆盖convert方法以检查source是否为Set,然后假设集合中的对象是AnotherComplexObject并从这一点开始进行转换但不知何故我觉得这不是最好也不是更多优雅的解决方

关于如何解决这个问题的任何其他想法?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值