Java のオブジェクトを逆シリアライズする方法

Javaでオブジェクトをデシリアライズする方法としてObjectInputStreamクラスのreadObject()メソッドを使用します。デシリアライズを行う手順は以下のとおりです。1. シリアライズされたオブジェクトを含むファイルを読み込むためのFileInputStreamオブジェクトを作成します。2. ObjectInputStreamオブジェクトを作成し、引数としてFileInputStreamオブジェクトを渡します。3. ObjectInputStreamオブジェクトのreadObject()メソッドを使用して、シリアライズされたオブジェクトを読み込みます。4. 読み込んだオブジェクトを必要な型に変換して、そのメソッドやフィールドを使用できるようにします。5. ObjectInputStreamオブジェクトを閉じます。以下は、オブジェクトをデシリアライズする例です。

“`java
try {
// FileInputStreamオブジェクトの作成
FileInputStream fileInputStream = new FileInputStream(“serializedObject.ser”);
// FileInputStreamオブジェクトを引数としてとるObjectInputStreamオブジェクトを作成
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
// ObjectInputStreamオブジェクトのreadObject()メソッドを使用して、シリアライズされたオブジェクトを読み込み
Object obj = objectInputStream.readObject();
// 読み込んだオブジェクトを型変換
MyClass myObject = (MyClass) obj;
// オブジェクトのメソッドやフィールドを使用
myObject.myMethod();
// ObjectInputStreamオブジェクトを閉じる
objectInputStream.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
“`

オブジェクトのデシリアライズ時には、シリアライズされたオブジェクトのクラスが現在のクラスパスに存在し、クラスのシリアライズIDがシリアライズされたオブジェクトのIDと一致していることを確認する必要があります。これらが一致しない場合、ClassNotFoundExceptionまたはInvalidClassExceptionがスローされます。

bannerAds