构造函数中的瞬态惰性值

时间:2018-11-14 00:35:41

标签: scala lazy-evaluation

我想声明一个@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进行正确的初始化?

0 个答案:

没有答案