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

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

提前致谢。

1class

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

使用BeanUtils

 import org.apache.commons.beanutils.BeanUtils; UserBean newObject = new UserBean(); BeanUtils.copyProperties(newObject, oldObject); 

如果您使用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。

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

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

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

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

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