Я хотел бы объявить @transient lazy val
в качестве параметра конструктора.Пример:
class Foo(@transient lazy val foo: FooFoo)
.
Scala 2.11 пока не имеет поддержки .Предложенный способ в проблеме, связанной выше, состоит в том, чтобы объявить еще один ленивый val в качестве члена класса и указать ему параметр конструктора call-by-name.
Пример (из вопроса):
def f[a](lazy t: a) = {
..
}
должен быть эквивалентен:
def f[a](t': => a) = {
lazy val t: a = t'
..
}
Мой вопрос: будет ли второй метод гарантировать, что ленивое значениеправильно инициализируется при десериализации при первом обращении к ней?