Verwendung von Reflection zum Kopieren von Eigenschaften aus Pojo in andere Java-Beans

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

  1. commons-beanutils können Sie hier herunterladenhttp://commons.apache.org/beanutils/

  2. Commons-Loging können Sie hier herunterladenhttp://commons.apache.org/logging/

  3. Finsternis

  4. JDK 1.6

2. Hände auf

  1. Erstellen Sie ein "Java-Projekt" in Eclipse.

  2. Projektname: CopyProperties, und klicken Sie auf die Schaltfläche "Fertig stellen".

  3. Entpacken Sie sowohlcommon-beanutils-xxx.zip als auchcommons-logging-xxx.zip.

  4. Fügen Sie dem Klassenpfad Ihres Projektscommons-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)