如何将属性从bean复制到不同类中的另一个bean?

时间:2013-11-04 02:01:43

标签: java javabeans

我有两个具有相同属性名称的java类。如何将所有属性复制到另一个填充了data的bean。我不想使用传统的表单来复制属性,因为我有很多属性。

提前致谢。

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;
   ....................

4 个答案:

答案 0 :(得分:47)

使用BeanUtils

import org.apache.commons.beanutils.BeanUtils;

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

答案 1 :(得分:1)

如果你使用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   所有属性名称相同的情况。

答案 2 :(得分:1)

查看Dozer Framework - 它是一个对象到对象的映射框架。这个想法是:

  • 通常它会按照惯例进行映射。
  • 您可以使用映射文件覆盖此约定。

。 。因此映射文件尽可能紧凑。它对许多情况很有用,例如将用例指定服务有效负载映射到可重用的核心模型对象。

在提供SpringSource培训课程时,我们经常指出这个框架。

编辑:

这些天试试MapStruct

答案 3 :(得分:0)

使用java reflection设置和获取属性值。有spring bean属性util,它可以访问属性值。我会向你推荐java反射。