Десериализация синглтона

    //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 сериализуется и может быть найден по пути.

В строке // ЗДЕСЬ /// объект успешно десериализован в mainListObj, НО это локально..

Как я могу сделать это глобальным? Я думаю, что это можно решить, выбрав метод getInstance... как-то так..

1 ответ

Ваш случай не синглтон.

В вашем случае вы можете просто предоставить сеттер.

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

MainList.setInstance(mainListObj);
Другие вопросы по тегам