Tôi biết lợi ích của các lĩnh vực lười biếng khi cần đánh giá giá trị hoãn lại vì một số lý do. Tôi đã tự hỏi hành vi của các lĩnh vực lười biếng về serialization là gì.Việc tuần tự hóa các trường lười hoạt động như thế nào?
Cân nhắc lớp học sau.
class MyClass {
lazy val myLazyVal = {...}
...
}
Câu hỏi:
- Nếu một thể hiện của MyClass là serialized, không lĩnh vực lười biếng được đăng quá?
- Hành vi của việc tuần tự hóa có thay đổi nếu trường đã được truy cập hay không trước khi tuần tự hóa? Ý tôi là, nếu tôi không gây ra sự đánh giá của trường, nó được coi là null?
- Cơ chế tuần tự hóa có kích thích đánh giá tiềm ẩn về trường lười không?
- Có cách nào đơn giản để tránh việc tuần tự hóa biến và nhận giá trị được tính toán lại thêm một lần nữa sau khi hủy tuần tự hóa không? Điều này sẽ xảy ra độc lập với việc đánh giá lĩnh vực này.
gì làm bạn mea n bởi "serialization"? Tôi hy vọng bạn không sử dụng serialization java chuẩn trong scala. Bạn đang sử dụng thư viện tuần tự hóa nào? –