propiedades - javabeans tutorial español
¿Cómo copiar propiedades de un bean a otro bean en una clase diferente? (4)
Esta pregunta ya tiene una respuesta aquí:
- Copia contenido de POJO de un bean a otro 5 respuestas
Tengo dos clases Java con los mismos nombres de propiedades. ¿Cómo puedo copiar todas las propiedades a otro bean lleno de datos? No quiero utilizar el formulario tradicional para copiar propiedades porque tengo muchas propiedades.
Gracias por adelantado.
1 clase
@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 clase
public class UserBean {
private String userSessionId;
private String userId;
private String name;
....................
Echa un vistazo a Dozer Framework : es un marco de asignación de objeto a objeto. La idea es que:
- Por lo general, se asignará por convención.
- Puede anular esta convención con un archivo de mapeo.
. . por lo tanto, los archivos de mapeo son lo más compactos posible. Es útil para muchos casos, como la asignación de una carga útil de servicio de caso de uso a los objetos del modelo central reutilizables.
Al impartir los cursos de capacitación de SpringSource, solíamos señalar este marco muy a menudo.
Si usa la biblioteca de Apache, BeanUtils, puede hacer esto fácilmente:
http://commons.apache.org/proper/commons-beanutils/
En particular, mira copyProperties (Objeto, Objeto)
http://commons.apache.org/proper/commons-beanutils/apidocs/org/apache/commons/beanutils/BeanUtils.html#copyProperties(java.lang.Object , java.lang.Object)
Copie los valores de propiedad del bean de origen al bean de destino para todos los casos en que los nombres de las propiedades sean iguales.
Use BeanUtils
:
import org.apache.commons.beanutils.BeanUtils;
UserBean newObject = new UserBean();
BeanUtils.copyProperties(newObject, oldObject);
Utilice la reflexión de Java para establecer y obtener valores de propiedad. Hay un utilitario de propiedad de bean que hace el acceso al valor de la propiedad. Te recomendaría la reflexión de java.