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;
}
}
次に、これらのフィールドをマップのようなコンテナーにマップします。
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
ですか?