Java POJO-Klasse

JavaBeginner
Jetzt üben

Einführung

In diesem Lab werden Sie über Plain Old Java Objects, allgemein bekannt als POJOs, und deren Konventionen lernen. Sie werden auch über Java Bean-Klassen lernen. Am Ende dieses Labs werden Sie in der Lage sein:

Erstellen Sie eine POJO-Klasse

In diesem Schritt werden wir eine POJO-Klasse namens Sample erstellen. Eine POJO-Klasse kann auf beliebige Weise erstellt werden und muss keinerlei Konventionen befolgen.

// Beispiel-POJO-Klasse
public class Sample{
    public String field1;
    private int field2;
    double field3;

    Sample(String s, int i, double d){
        this.field1 = s;
        this.field2 = i;
        this.field3 = d;
    }

    public String getField1(){
        return field1;
    }

    public double getField3(){
        return field3;
    }
}

Speichern Sie die Datei und kompilieren Sie sie im Terminal mit den folgenden Befehlen:

cd ~/project
javac Sample.java

Verstehen Sie die POJO-Klasse

In diesem Schritt werden wir die Klasse Sample ausführen und sehen, wie sie funktioniert.

public class Main{
    public static void main(String[] args) {
        Sample sample = new Sample("field 1", 100, 123.45);

        System.out.println("Field 1: " + sample.field1);
        System.out.println("Field 2: " + sample.field2);
        System.out.println("Field 3: " + sample.field3);
    }
}

Speichern Sie die Datei und führen Sie sie im Terminal mit den folgenden Befehlen aus:

java Main

Verstehen Sie die Reflection-API

In diesem Schritt werden wir die Reflection-API verwenden, um die Eigenschaften der Klasse Sample anzuzeigen. Die Reflection-API ist ein leistungsstarkes Tool, das es Ihnen ermöglicht, das Verhalten einer Anwendung zu untersuchen und zu modifizieren.

import org.apache.commons.beanutils.BeanUtils;
import java.util.Map;

public class Main {
    public static void main(String[] args) throws Exception {
        Sample s = new Sample("f1", 0, 0.0);
        try {
            Map<String, Object> properties = BeanUtils.describe(s);
            for (Map.Entry<String, Object> e : properties.entrySet())
                System.out.println(e.getKey() + "->" + e.getValue());
        } catch (Exception e) {
            System.out.print(e);
        }
    }
}

Speichern Sie die Datei und kompilieren Sie sie im Terminal mit dem folgenden Befehl:

cd ~/project
javac -cp.:commons-beanutils-1.9.4.jar Main.java

Das -cp-Flag wird hier verwendet, um den Klassenpfad anzugeben. :commons-beanutils-1.9.4.jar ist der Pfad des commons-beanutils-Pakets. Um die kompilierte Datei auszuführen, verwenden Sie den folgenden Befehl:

java -cp.:commons-beanutils-1.9.4.jar Main

Erstellen Sie eine Java Bean-Klasse

In diesem Schritt werden wir die POJO-Klasse Sample in eine Java Bean-Klasse umwandeln. Eine Java Bean-Klasse ist eine POJO, die bestimmte Konventionen und Regeln befolgt.

import java.io.Serializable;

public class Sample implements Serializable{
    private String field1;
    private int field2;
    private double field3;

    public Sample(){}

    public Sample(String s, int i, double d){
        this.field1 = s;
        this.field2 = i;
        this.field3 = d;
    }

    public String getField1(){
        return field1;
    }

    public void setField1(String field1){
        this.field1 = field1;
    }

    public int getField2(){
        return field2;
    }

    public void setField2(int field2){
        this.field2 = field2;
    }

    public double getField3(){
        return field3;
    }

    public void setField3(double field3){
        this.field3 = field3;
    }
}

Verstehen Sie die Java Bean-Klasse

In diesem Schritt werden wir die Klasse Sample ausführen und sehen, wie sie funktioniert.

public class Main{
    public static void main(String[] args) {
        Sample sample = new Sample();
        sample.setField1("field 1");
        sample.setField2(100);
        sample.setField3(123.45);

        System.out.println("Field 1: " + sample.getField1());
        System.out.println("Field 2: " + sample.getField2());
        System.out.println("Field 3: " + sample.getField3());
    }
}

Speichern Sie die Datei und kompilieren Sie sie im Terminal mit den folgenden Befehlen:

cd ~/project
javac Main.java

Verstehen Sie die Reflection-API

In diesem Schritt werden wir erneut die Reflection-API verwenden, um die Eigenschaften der Klasse Sample anzuzeigen.

public class Main {
    public static void main(String[] args) throws Exception {
        Sample s = new Sample("f1", 0, 0.0);
        try {
            Map<String, Object> properties = BeanUtils.describe(s);
            for (Map.Entry<String, Object> e : properties.entrySet())
                System.out.println(e.getKey() + "->" + e.getValue());
        } catch (Exception e) {
            System.out.print(e);
        }
    }
}

Speichern Sie die Datei und kompilieren Sie sie im Terminal mit den folgenden Befehlen:

cd ~/project
javac -cp.:commons-beanutils-1.9.4.jar Main.java

Das -cp-Flag wird hier verwendet, um den Klassenpfad anzugeben. :commons-beanutils-1.9.4.jar ist der Pfad des commons-beanutils-Pakets. Um die kompilierte Datei auszuführen, verwenden Sie den folgenden Befehl:

java -cp.:commons-beanutils-1.9.4.jar Main

Verstehen Sie die Serialisierung von Java Bean-Klassen

In diesem Schritt werden wir die Serialisierung verwenden, um ein Objekt der Klasse Sample in einer Datei zu speichern. Die Serialisierung wird verwendet, um ein Objekt in einen Byte-Strom zu konvertieren, der auf der Festplatte gespeichert oder über ein Netzwerk gesendet werden kann.

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

public class Main {
    public static void main(String[] args) throws Exception {
        Sample s = new Sample("f1", 0, 0.0);
        try {
            FileOutputStream fos = new FileOutputStream("sample.ser");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(s);
            oos.close();
            fos.close();
            System.out.println("Object has been serialized");
        } catch (Exception e) {
            System.out.print(e);
        }
    }
}

Speichern Sie die Datei und kompilieren Sie sie im Terminal mit den folgenden Befehlen:

cd ~/project
javac Main.java

Führen Sie die kompilierte Datei mit dem folgenden Befehl aus:

java Main

Verstehen Sie die Deserialisierung von Java Bean-Klassen

In diesem Schritt werden wir die Deserialisierung verwenden, um ein Objekt der Klasse Sample aus einer Datei zu lesen. Die Deserialisierung wird verwendet, um einen Byte-Strom wieder in ein Objekt umzuwandeln.

import java.io.FileInputStream;
import java.io.ObjectInputStream;

public class Main {
    public static void main(String[] args) throws Exception {
        try {
            FileInputStream fis = new FileInputStream("sample.ser");
            ObjectInputStream ois = new ObjectInputStream(fis);
            Sample s = (Sample) ois.readObject();
            ois.close();
            fis.close();
            System.out.println("Object has been deserialized");
            System.out.println("Field 1: " + s.getField1());
            System.out.println("Field 2: " + s.getField2());
            System.out.println("Field 3: " + s.getField3());
        } catch (Exception e) {
            System.out.print(e);
        }
    }
}

Speichern Sie die Datei und kompilieren Sie sie im Terminal mit den folgenden Befehlen:

cd ~/project
javac Main.java

Führen Sie die kompilierte Datei mit dem folgenden Befehl aus:

java Main

Zusammenfassung

In diesem Lab haben Sie über POJOs und ihre Rolle in der Java-Programmierung gelernt. Sie haben gelernt, wie eine POJO-Klasse erstellt wird und was der Unterschied zwischen einer POJO- und einer Java Bean-Klasse ist. Sie haben gelernt, wie eine POJO-Klasse in eine Java Bean-Klasse umgewandelt wird und wie die Reflection-API verwendet wird, um die Eigenschaften einer Java Bean-Klasse anzuzeigen. Schließlich haben Sie gelernt, wie ein Java Bean-Objekt serialisiert und deserialisiert wird.