【发布时间】:2020-09-19 17:46:07
【问题描述】:
我正在尝试序列化 Scala 中对象的更新值。虽然序列化文件显示了更新后的字符串,但是当我反序列化它时,我得到的是初始值而不是更新后的值。
import java.io._
object AnObject extends Serializable
{
var x = 2.0
var s = "Here's a string"
} // AnObject object
object ObjectSerialization extends App
{
AnObject.s = "This is an updated string"
val oos = new ObjectOutputStream (new FileOutputStream ("src/AnObject.ser"))
oos.writeObject (AnObject)
oos.close ()
} // ObjectDeserialization object
object ObjectDeserialization extends App {
val ois = new ObjectInputStream(new FileInputStream("src/AnObject.ser"))
val obj = ois.readObject.asInstanceOf[AnObject.type]
ois.close
println(obj.s)
}
我期待输出“这是一个更新的字符串”。如果您有任何想法,请告诉我。谢谢
【问题讨论】:
-
一个单例可变对象,将被序列化,因为某些状态闻起来像个坏主意。
标签: scala object serialization deserialization