Я знаю преимущества ленивых полей, когда по некоторым причинам требуется отсроченная оценка ценностей. Мне было интересно, что такое поведение ленивых полей с точки зрения сериализации.
Рассмотрим следующий класс.
class MyClass {
lazy val myLazyVal = {...}
...
}
Вопросов:
- Если экземпляр экземпляра MyClass сериализуется, делает ли ленное поле также сериализованным?
- Изменяется ли поведение сериализации при доступе к полю или нет до сериализации? Я имею в виду, если я не вызываю оценку поля, считается ли он нулевым?
- Является ли механизм сериализации причиной неявной оценки ленивого поля?
- Есть ли простой способ избежать сериализации переменной и получения значения, повторно рассчитанного еще раз лениво после десериализации? Это должно происходить независимо от оценки поля.