【发布时间】:2015-03-09 01:22:54
【问题描述】:
当由于某些原因需要延迟评估值时,我知道惰性字段的好处。我想知道惰性字段在序列化方面的行为是什么。
考虑以下类。
class MyClass {
lazy val myLazyVal = {...}
...
}
问题:
- 如果 MyClass 的实例被序列化,惰性字段是否也被序列化?
- 如果字段在序列化之前已被访问,序列化的行为是否会改变?我的意思是,如果我不引起对该字段的评估,它是否被视为 null ?
- 序列化机制是否会引发对惰性字段的隐式评估?
- 是否有一种简单的方法可以避免变量的序列化,并在反序列化之后再懒惰地重新计算一次值?这应该独立于对该领域的评估进行。
【问题讨论】:
-
“序列化”是什么意思?我希望你没有在 scala 中使用标准的 java 序列化。您使用的是哪个序列化库?
标签: scala serialization