Десериализация синглтона
//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);