web-dev-qa-db-ja.com

Beanから別のクラスの別のBeanにプロパティをコピーする方法は?

同じプロパティ名を持つ2つのJavaクラス。多くのプロパティ。

前もって感謝します。

1クラス

@ManagedBean
@SessionScoped
public class UserManagedBean implements Serializable {

    private static final long serialVersionUID = 1L;
    private String userSessionId;
    private String userId;
    private String name;
    private String adress;
    ......................

2クラス

public class UserBean {

    private String userSessionId;
    private String userId;
    private String name;
   ....................
25
user2683519

BeanUtils を使用します。

import org.Apache.commons.beanutils.BeanUtils;

UserBean newObject = new UserBean(); 
BeanUtils.copyProperties(newObject, oldObject);
52
Mariusz Jamro

Dozer Framework -オブジェクトからオブジェクトへのマッピングフレームワークを確認してください。アイデアは次のとおりです。

  • 通常、慣例によりマッピングされます。
  • この規則は、マッピングファイルでオーバーライドできます。

。 。したがって、マッピングファイルは可能な限りコンパクトです。ユースケース指定サービスペイロードを再利用可能なコアモデルオブジェクトにマッピングするなど、多くの場合に役立ちます。

SpringSourceトレーニングコースを実施する際、私たちはこのフレームワークを頻繁に指摘していました。

編集:

最近では MapStruct を試してください。

2
Jasper Blues

ApacheのライブラリBeanUtilsを使用する場合、これを簡単に行うことができます。

http://commons.Apache.org/proper/commons-beanutils/

特に、copyProperties(Object、Object)を見てください

http://commons.Apache.org/proper/commons-beanutils/apidocs/org/Apache/commons/beanutils/BeanUtils.html#copyProperties(Java.lang.Object 、Java.lang.Object )

プロパティ名が同じであるすべての場合に、プロパティ値をオリジンBeanから宛先Beanにコピーします。

1
sdanzig

Java reflectionを使用してプロパティ値を設定および取得します。プロパティ値へのアクセスを行うSpring Beanプロパティutilがあります。お勧めしますJava reflection。

0
Arvind