Mặc định deserialization của các loại enum trong Java bị giới hạn là readObject
và readObjectNoData
ném InvalidObjectException
. Vì lý do này, các loại enum là hoàn hảo để triển khai các lớp đơn lẻ mà không có bất kỳ lỗ hổng nào (Mục 77, Java hiệu quả, ấn bản thứ hai, Bloch).Deserialization enum trong Java
- Tại sao, trên thực tế, các loại enum thực hiện
Serializable
? - Làm cách nào để tham chiếu enum được deserialized trong thực tế?
Vâng, điểm # 1 có câu trả lời ở đây. Các lớp có chứa tham chiếu enum không chỉ bị lỗi khi tuần tự hóa. Tôi cố gắng xóa mặc định, và nó hoạt động đơn giản! Sau đó, tại sao, có rất nhiều bài viết thảo luận về hiệu quả deserializing enums (chỉ để phục vụ mã tái factoring)? – abksrv