我的源对象具有这种格式
public class Source
{
private SourceParm parm;
//GETTERS and SETTERS
}
并且SourceParm是像这样的自引用对象
public class SourceParm
{
private List<SourceParm> parm;
private List<String> value;
private String name;
private String type;
//GETTERS and SETTERS
}
现在让我们假设目标类是这种格式
public class Target {
String type;
String channelType;
String externalTxnId;
String correlationId;
}
现在,如果我要映射到目标字段,则需要编写这样的代码
Target target=new Target();
if(SourceParm.getName().equals("channelType")){
target.setChannelType(SourceParm.getValue())
}
另外,对于某些目标值,我将不得不像下面这样迭代SourceParm列表
for(SourceParm sourceParm : sourceParm.getSourceParms()){
if(sourceParm.getName().equals("externalTxnId")){
target.setExternalTxnId(SourceParm.getValue())
}
}
如何使用MapStruct实现呢?最终我写了很多默认方法
时,看不到任何简单的方法