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.zipals auchcommons-logging-xxx.zip. -
Fügen Sie dem Klassenpfad Ihres Projekts
commons-beanutils-xxx.jarundcommons-logging-xxx.jarhinzu.
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)