反序列化单例


    //Singleton
    public class MainList implements Serializable {
            private static MainList instance = new MainList();
            private MainList() {}
            public static MainList getInstance() {
                return instance;
            }
        }
    //Trying to deserialize..
    public MainWindow() {
        //Importing the latest version if it exists in path
        MainList mainListObj = MainList.getInstance();
        try {
            FileInputStream fis = new FileInputStream(path);
            ObjectInputStream oin = new ObjectInputStream(fis);
            mainListObj = (MainList) oin.readObject(); //HERE//////
        }
        catch (Exception exc) {
            return;
        }
    }

类 MainList 的单例对象是序列化的,可以通过路径找到。

在行//HERE///对象成功反序列化为 mainListObj 上,但它是本地的..

如何使其全球化?我认为可以通过 chanching getInstance 方法解决。不知何故。。

您的情况不是单例。

在您的情况下,您可以简单地提供一个二传手。

static void setInstance(MainList newInstance) {
 instance = newInstance;
}
MainList.setInstance(mainListObj);

最新更新