J'ai deux Java avec les mêmes noms de propriétés. Comment puis-je copier toutes les propriétés dans un autre bean rempli de données. Je ne veux pas utiliser le formulaire traditionnel pour copier les propriétés parce que j'ai un beaucoup de propriétés.
Merci d'avance.
1 classe
@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 classes
public class UserBean {
private String userSessionId;
private String userId;
private String name;
....................
Utilisez BeanUtils
:
import org.Apache.commons.beanutils.BeanUtils;
UserBean newObject = new UserBean();
BeanUtils.copyProperties(newObject, oldObject);
Découvrez Dozer Framework - c'est un framework de mappage objet à objet. L'idée est que:
. . par conséquent, les fichiers de mappage sont aussi compacts que possible. Son utile pour de nombreux cas, tels que le mappage d'un cas d'utilisation spécifier la charge utile du service sur les objets de modèle de noyau réutilisables.
Lors de la prestation des cours de formation SpringSource, nous avions l'habitude de souligner ce cadre très souvent.
Modifier:
Ces jours-ci, essayez MapStruct .
Si vous utilisez la bibliothèque d'Apache, BeanUtils, vous pouvez le faire facilement:
http://commons.Apache.org/proper/commons-beanutils/
En particulier, regardez copyProperties (Object, Object)
http://commons.Apache.org/proper/commons-beanutils/apidocs/org/Apache/commons/beanutils/BeanUtils.html#copyProperties (Java.lang.Object , Java.lang.Object )
Copiez les valeurs de propriété du bean d'origine vers le bean de destination dans tous les cas où les noms de propriété sont identiques.
Utilisez Java réflexion pour définir et obtenir les valeurs des propriétés. Il existe une propriété de bean à ressort qui fait l'accès aux valeurs de propriété. Je vous recommande Java réflexion.