9

同じフィールドで名前が異なるBeanUtilsを使用して、プロパティ値をクラスAからクラスBにコピーしたいと思います。プロパティ名をdifferentNameに、年齢をdifferentAgeなどにマップして、コピーを実行することはできますか?これがApacheCommonsユーティリティのみを使用して(他のツールではなく)何らかの方法で可能かどうかを知りたいと思います。

class ClassA{
    private String name;
    private Integer age;
    ... // Setter and Getter methods
} 

class ClassB{
    private String differentName;
    private Integer differentAge;
    ... // Setter and Getter methods for the private fields
}
4

1 に答える 1

4

Apache Commons BeanUtilsには、メソッドpopulate(Object Bean、Mapプロパティ)がマップを受け入れて、Beanにキーと値のペアを設定するメソッドがあります。

注:Apache-Commonsの制限を見たばかりですが、それでも他の人にとっては役立つ可能性があり、私に関する限り、より良い解決策です。

名前が一致する場合はDozerを使用すると、値が自動的にコピーされます。または、あなたの場合のように、xmlマッピングファイルでソースメンバーとターゲットメンバーを指定できます。

于 2012-10-19T08:50:08.587 に答える