我想使用MapStruct将 bean 类的字段映射到类似字典的类中。我的源类是标准 bean(简化示例):
public class Bean {
private String a;
private String b;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
}
现在我想将这些字段映射到类似 Map 的容器中:
public class Dict {
public enum Tag {
A,
B
}
private Map<Tag, String> dict = new HashMap<>();
public String getEntry(Tag tag) {
return dict.get(tag);
}
public void setEntry(Tag tag, String s) {
dict.put(tag, s);
}
}
换句话说,我希望MapStruct生成以下内容:
target.setEntry(Dict.Tag.A, source.getA());
target.setEntry(Dict.Tag.B, source.getB());
我在 MapStruct文档中找不到类似的东西。获取映射源(嵌套源、表达式)有很大的灵活性,但对于目标,我只能看到target = "propertyname"
没有太多灵活性空间的符号。
映射到的最佳解决方案是java.util.Map
什么?