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:
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
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:
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
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
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
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;
}
}
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
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
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
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
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.