Dozerを使用してのインスタンスを変換しようとしています
class Source {
private List<Foo> foos = new ArrayList<Foo>();
public List<Foo> getFoos() {
return foos;
}
public void setFoos(List<Foo> foos) {
this.foos = foos;
}
}
次のインスタンスに:
class Target {
private List<Foo> foos = new ArrayList<Foo>();
public List<Foo> getFoos() {
return foos;
}
}
Javaコードでは、このような会話を実行します
Source s = new Source();
Target t = new Target();
t.getFoos().addAll(s.getFoos());
プロパティ(ゲッターのみ)Target
がないため、Dozerはデフォルトではこの変換を実行しません。foos
実際には、マップする必要のあるこのようなプロパティがたくさんあります。1つのオプションは、プライベートフィールドを直接マップするようにDozerに指示することですが、これは完全に満足のいくものではありません。理由は次のとおりです。
- Dozer XML構成で、この方法でマップする各フィールドを名前で指定する必要があります
- プライベートフィールドへのアクセスは悪い
もっと良い方法はありますか?