2010-07-27 29 views
19

Tôi có một lớp học Foo, là Serializable. Nó đại diện cho một đối tượng đồ họa, và tôi muốn nó khôi phục các chốt của nó về trạng thái trước khi tuần tự hóa. Tất cả dữ liệu được lưu trữ trong đối tượng, tôi chỉ cần một phương thức để được gọi vào đúng thời điểm. Làm thế nào tôi có thể đạt được nó? Điều này có thể thực hiện được trong Java không?Làm cách nào để tự động thực hiện một phương thức sau khi khử tuần tự hóa?

(Tôi có Foo s của tôi trong một List trong Bar đối tượng, và ở một số nơi khác -. Đó là lý do tôi không muốn làm điều đó bằng tay)

Trả lời

29

Lớp học đòi hỏi phải xử lý đặc biệt trong serialization và quá trình deserialization phải thực hiện phương pháp đặc biệt với những chữ ký chính xác:

private void readObject(java.io.ObjectInputStream in) 
    throws IOException, ClassNotFoundException; 

thực hiện phương pháp này, và gọi in.defaultReadObject(), và sau đó d o bất kỳ logic tùy chỉnh nào bạn muốn.

Kiểm tra tài liệu của java.io.Serializable để biết thêm chi tiết

+1

Điều này thực sự đã giúp tôi rất nhiều. Những thứ như thế này được dạy trong nhiều sách hơn. – eaglei22

Các vấn đề liên quan