Подтвердить что ты не робот

Как скопировать свойства из bean в другой bean в другом классе?

У меня есть два класса java с одинаковыми именами свойств. Как я могу скопировать все свойства в другой 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;
   ....................
4b9b3361

Ответ 1

Используйте BeanUtils:

import org.apache.commons.beanutils.BeanUtils;

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

Ответ 2

Если вы используете библиотеку 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 для все случаи, когда имена свойств одинаковы.

Ответ 3

Ознакомьтесь с Dozer Framework - это объект для структуры отображения объектов. Идея такова:

  • Обычно это будет отображаться по соглашению.
  • Вы можете переопределить это соглашение с помощью файла сопоставления.

., поэтому файлы сопоставления максимально компактны. Он полезен для многих случаев, например, для сопоставления прецедента, указывая служебную нагрузку на объекты многоядерной базовой модели.

При доставке учебных курсов SpringSource мы часто указывали на эту структуру.

Ответ 4

Используйте java-отражение для установки и получения значений свойств. Существует свойство spring bean, которое делает доступ к значению свойства. Я бы рекомендовал вам java-рефлексию.