Comment utiliser la réflexion pour copier des propriétés de Pojo vers d'autres beans Java
Parfois, nous avons besoin de copier les propriétés d'une classe Java vers une autre, nous pouvons le faire manuellement ou avec notre propre implémentation de réflexion, mais dans ce cas, utilisez-nous la réflexion pour l'automatiser avec un utilitaire d'apache
Exigences
-
commons-beanutils, vous pouvez télécharger icihttp://commons.apache.org/beanutils/
-
commons-loging, vous pouvez télécharger d'icihttp://commons.apache.org/logging/
-
Éclipse
-
JDK 1.6
2. Pratique
-
Créez un «projet Java» dans eclipse.
-
Nom du projet: CopyProperties, et cliquez sur le bouton "Terminer".
-
Décompressez à la fois
common-beanutils-xxx.zip
etcommons-logging-xxx.zip
. -
Ajoutez
commons-beanutils-xxx.jar
etcommons-logging-xxx.jar
au chemin de classe de votre projet.
Créer une nouvelle classe «Person» dans le packagepojo.from
package pojo.from; public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
Créer une classe «OthePerson» dans le packagepojo.to
avec les mêmes champs
package pojo.to; public class OthePerson { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
3. Essai
Créez une classe de test dans le packagepojo.test
avec la méthode main et testezcommons-beanutils
.
package pojo.test; import org.apache.commons.beanutils.BeanUtils; import pojo.from.Person; import pojo.to.OthePerson; /** * Class for test copy properties * * @author Rene Enriquez * @date 23/07/2012 * */ public class Test { /** * Main method * * @param args */ public static void main(String[] args) throws Exception { Person person = new Person(); person.setAge(15); person.setName("rene"); OtherPerson othePerson = new OtherPerson(); System.out.println("*** Before BeanUtils.copyProperties ***"); System.out.println("Person"); System.out.println(person.getAge()); System.out.println(person.getName()); System.out.println("othePerson"); System.out.println(othePerson.getAge()); System.out.println(othePerson.getName()); //copy properties from (target, source) BeanUtils.copyProperties(othePerson, person); System.out.println("\n*** After BeanUtils.copyProperties ***"); System.out.println("Person"); System.out.println(person.getAge()); System.out.println(person.getName()); System.out.println("othePerson"); System.out.println(othePerson.getAge()); System.out.println(othePerson.getName()); } }
Sortie
*** Before BeanUtils.copyProperties *** Person 15 rene othePerson 0 null *** After BeanUtils.copyProperties *** Person 15 rene othePerson 15 rene
Télécharger le code source
Téléchargez-le -CopyProperties.zip (6 Ko)