Đối với hồ sơ, vì tôi đã có một vấn đề tương tự:
Tôi đã có một thông báo "java.io.InvalidClassException: com.example.stuff.FooBar; com.example.stuff.FooBar, không có nhà xây dựng có giá trị"
Tôi nghĩ đó là vì nó thiếu một hàm tạo mặc định. Nhưng các câu trả lời trên xác nhận nó không phải là bắt buộc (nhưng ứng dụng của chúng tôi. Sử dụng một serializer cũ mà thực sự đòi hỏi một constructor mặc định, vì vậy trường hợp có thể phát sinh).
Sau đó, tôi tìm thấy một trang nêu:
Nếu một lớp học được thiết kế cho các thừa kế không phải là serializable, nó có thể không thể viết một phân lớp serializable. Cụ thể, nó sẽ là không thể nếu siêu lớp không cung cấp một hàm tạo tham số có thể truy cập.
Do đó, tôi nhận được thông báo.Nó xuất hiện rằng vấn đề cốt lõi là cổ điển: Tôi tuyên bố một lớp như serializable, nhưng siêu lớp không phải là! Tôi đã di chuyển giao diện Serializable lên trong hệ thống phân cấp và tất cả đều tốt.
Nhưng thông báo có một chút gây hiểu lầm ... :-)
Cảm ơn, tôi đã sử dụng phương pháp đặc trưng của serialization nhưng đã luôn luôn cung cấp một constructor rỗng như đó là làm thế nào tôi nghĩ rằng nó làm việc. – Pool