我想声明一个@transient lazy val
作为构造函数参数。示例:
class Foo(@transient lazy val foo: FooFoo)
。
Scala 2.11 does not似乎对此有所支持。在上面链接的问题中,建议的方法是将另一个惰性val声明为类成员,并使其指向按名称调用构造函数参数。
示例(来自问题)
def f[a](lazy t: a) = {
..
}
应等效于:
def f[a](t': => a) = {
lazy val t: a = t'
..
}
我的问题是:第二种方法是否可以确保在第一次被反序列化时,对惰性val进行正确的初始化?