Java POJO クラス

JavaJavaBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、一般的にPOJOとして知られる単純な古いJavaオブジェクトとその規約について学びます。また、Java Beanクラスについても学びます。この実験の最後に、以下のことができるようになります。

POJO クラスを作成する

このステップでは、Sample という名前の POJO クラスを作成します。POJO クラスは、どのような方法で作成してもよく、どのような規約にも従う必要はありません。

// サンプル POJO クラス
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;
    }
}

ファイルを保存し、ターミナルで以下のコマンドを使用してコンパイルします。

cd ~/project
javac Sample.java

POJO クラスを理解する

このステップでは、Sample クラスを実行して、その動作を確認します。

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);
    }
}

ファイルを保存し、ターミナルで以下のコマンドを使用して実行します。

java Main

反射 API を理解する

このステップでは、反射 API を使用して Sample クラスのプロパティを表示します。反射 API は、アプリケーションの動作を調査および変更することができる強力なツールです。

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);
        }
    }
}

ファイルを保存し、ターミナルで以下のコマンドを使用してコンパイルします。

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

ここで -cp フラグを使用してクラスパスを指定します。:commons-beanutils-1.9.4.jarcommons-beanutils パッケージのパスです。コンパイル済みのファイルを実行するには、以下のコマンドを使用します。

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

Java Bean クラスを作成する

このステップでは、Sample POJO クラスを Java Bean クラスに変換します。Java Bean クラスは、いくつかの規約とルールに従う POJO です。

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;
    }
}

Java Bean クラスを理解する

このステップでは、Sample クラスを実行して、その動作を確認します。

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());
    }
}

ファイルを保存し、ターミナルで以下のコマンドを使用してコンパイルします。

cd ~/project
javac Main.java

反射 API を理解する

このステップでは、再び反射 API を使用して Sample クラスのプロパティを表示します。

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);
        }
    }
}

ファイルを保存し、ターミナルで以下のコマンドを使用してコンパイルします。

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

ここで -cp フラグを使用してクラスパスを指定します。:commons-beanutils-1.9.4.jarcommons-beanutils パッケージのパスです。コンパイル済みのファイルを実行するには、以下のコマンドを使用します。

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

Java Bean クラスの直列化を理解する

このステップでは、直列化を使用して Sample クラスのオブジェクトをファイルに保存します。直列化は、オブジェクトをバイトのストリームに変換して、ディスクに保存したり、ネットワークを介して送信したりするために使用されます。

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);
        }
    }
}

ファイルを保存し、ターミナルで以下のコマンドを使用してコンパイルします。

cd ~/project
javac Main.java

コンパイル済みのファイルを以下のコマンドを使用して実行します。

java Main

Java Bean クラスの逆直列化を理解する

このステップでは、逆直列化を使用して Sample クラスのオブジェクトをファイルから読み取ります。逆直列化は、バイトのストリームをオブジェクトに戻すために使用されます。

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);
        }
    }
}

ファイルを保存し、ターミナルで以下のコマンドを使用してコンパイルします。

cd ~/project
javac Main.java

コンパイル済みのファイルを以下のコマンドを使用して実行します。

java Main

まとめ

この実験では、POJO とその Java プログラミングにおける役割について学びました。POJO クラスを作成する方法と、POJO と Java Bean クラスの違いについて学びました。POJO クラスを Java Bean クラスに変換する方法と、Java Bean クラスのプロパティを表示するために反射 API を使用する方法について学びました。最後に、Java Bean オブジェクトをシリアライズおよび逆シリアライズする方法について学びました。