Verwendung von Reflection zum Kopieren von Eigenschaften von Pojo in andere Java-Beans
Manchmal müssen wir Eigenschaften von einer Java-Klasse in eine andere kopieren. Dies können wir manuell oder mit unserer eigenen Reflection-Implementierung tun. In diesem Fall verwenden wir Reflection, um es mit einem Dienstprogramm von Apache zu automatisieren
Bedarf
-
commons-beanutils können Sie hier herunterladenhttp://commons.apache.org/beanutils/
-
Commons-Loging können Sie hier herunterladenhttp://commons.apache.org/logging/
-
Finsternis
-
JDK 1.6
2. Hände auf
-
Erstellen Sie ein "Java-Projekt" in Eclipse.
-
Projektname: CopyProperties, und klicken Sie auf die Schaltfläche "Fertig stellen".
-
Entpacken Sie sowohl
common-beanutils-xxx.zip
als auchcommons-logging-xxx.zip
. -
Fügen Sie dem Klassenpfad Ihres Projekts
commons-beanutils-xxx.jar
undcommons-logging-xxx.jar
hinzu.
Erstellen Sie eine neue Klasse "Person" im Paketpojo.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; } }
Erstellen Sie eine Klasse "OthePerson" inpojo.to
Paket mit denselben Feldern
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. Testen
Erstellen Sie eine Testklasse im Paketpojo.test
mit der Hauptmethode und testen Siecommons-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()); } }
Ausgabe
*** Before BeanUtils.copyProperties *** Person 15 rene othePerson 0 null *** After BeanUtils.copyProperties *** Person 15 rene othePerson 15 rene
Quellcode herunterladen
Laden Sie es herunter -CopyProperties.zip (6 KB)