在android(kotlin)的内存中保存对象

我一直在尝试保存在Android的内部记忆列表,但我有一些问题。 这是我的代码保存和加载列表:

保存

saveStateList.add(saveState) val fos: FileOutputStream var oos: ObjectOutputStream? = null var allSaveStates :AllSaveStates = AllSaveStates() allSaveStates.saveStateList=saveStateList try { fos = activity.applicationContext.openFileOutput("saves", Context.MODE_PRIVATE) oos = ObjectOutputStream(fos) oos.writeObject(allSaveStates) oos.close() } catch (e: Exception) { } finally { if (oos != null) try { oos.close() } catch (e: Exception) { } } 

载入中

  val fis: FileInputStream var ois: ObjectInputStream? = null try { println("loading saves") fis = activity.applicationContext.openFileInput("saves") ois = ObjectInputStream(fis) var allSaveStates :AllSaveStates = (ois.readObject()) as AllSaveStates saveStateList=allSaveStates.saveStateList ois.close() } catch (e: Exception) { println("error loading saves") } finally { if (ois != null) try { ois.close() } catch (e: Exception) { println("error closing input stream") } } 

AllSaveStates类

 class AllSaveStates : Serializable { var saveStateList: MutableList<SaveState> = mutableListOf() } 

SaveState类

 class SaveState : Serializable{ var name : String = "" var mapSize : Int = 0 var startDay : Int = 0 var startMonth : Int = 0 var startYear : Int = 0 var currentMinutes : Int = 0 var currentHour : Int = 0 var currentDay : Int = 0 var currentMonth : Int = 0 var currentYear : Int = 0 var newsList: MutableList<String> = mutableListOf<String>() var itemList : MutableList<Item> = mutableListOf() lateinit var generator : WorldGenerator } 

这行代码给了我SaveState的NotSerializableException,如果我删除加载的try子句:

 var allSaveStates :MutableList<SaveState> = (ois.readObject()) as MutableList<SaveState> 

提前致谢!