无法序列化ArrayList

F. *_* P. 0 java collections serialization class arraylist

这是序列化矢量的后续操作

我正在尝试为我正在进行的游戏实现加载和保存.

我想保存一个Maze包含其他属性的ArrayList内容Entity.

实体是Dragon,Hero和Item的超级类.所有这三种类型都可以一次包含在载体中.

使用"自动"序列化机制(添加implements SerializableMaze)保存所有属性,但是ArrayList.

为什么会这样?

为了完整起见,我的代码在下面.

package logic;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public final class LoadAndSave {
    public static final transient boolean available = false;

    public static final boolean serialize(Object obj) {

        // Write to disk with FileOutputStream
        FileOutputStream saveFile;
        try {
            saveFile = new FileOutputStream("game.sav");
        } catch (FileNotFoundException e) {
            return false;
        }

        // Write object with ObjectOutputStream
        ObjectOutputStream objOut;
        try {
            objOut = new ObjectOutputStream(saveFile);
        } catch (IOException e) {
            //
            return false;
        }

        // Write object out to disk
        try {
            objOut.writeObject(obj);
        } catch (IOException e) {
            return false;
        }

        return true;
    }

    public static final Object load() {
        FileInputStream fileIn;
        try {
            fileIn = new FileInputStream("game.sav");
        } catch (FileNotFoundException e1) {
            return null;
        }

        // Read object using ObjectInputStream
        ObjectInputStream objIn;
        try {
            objIn = new ObjectInputStream(fileIn);
        } catch (IOException e) {
            return null;
        }

        // Read an object
        Object obj;
        try {
            obj = objIn.readObject();
        } catch (IOException e) {
            return null;
        } catch (ClassNotFoundException e) {
            return null;
        }

        return obj;
    }

}
Run Code Online (Sandbox Code Playgroud)

Aug*_*sto 6

Entity序列化吗?(你提到只是迷宫是可序列化的).

并确保列表未定义为瞬态静态,否则序列化机制将跳过该列表.