Trong Java, các giao diện Bộ sưu tập không mở rộng Nối tiếp được vì một số lý do chính đáng. Ngoài ra, việc triển khai phổ biến nhất của các giao diện này thực hiện Serializable. Vì vậy, các đối tượng thực hiện một trong các giao diện Bộ sưu tập có thể tuần tự hóa nếu thực hiện chính nó có thể tuần tự hóa (thường là trường hợp) và nếu các đối tượng trong bộ sưu tập đều có thể tuần tự hóa được.Java: cách đảm bảo các bộ sưu tập có thể tuần tự
Nhưng làm cách nào để đảm bảo rằng hai điều kiện này được đáp ứng? Tôi không muốn chạy vào một lỗi thời gian chạy vì trình biên dịch có thể kiểm tra các điều kiện này. Tôi đang suy nghĩ về một số giao diện rõ ràng như (showcase cho Danh sách giao diện):
public interface SerializableList<T extends Serializable> extends Serializable, List<T> {}
Tôi tự hỏi nếu không có ai khác đang đối mặt với vấn đề này và đã đưa ra giải pháp dễ dàng này. Cho đến bây giờ tôi đã không thể tìm thấy bất kỳ giải pháp hoặc thậm chí thảo luận về điều này, mà làm cho tôi nghi ngờ về ý tưởng của tôi.
Bạn có thể đặt tham chiếu 'List' thành' 'List', nếu tôi hiểu chính xác câu hỏi của bạn. Bạn không cần phải tung ra giao diện của riêng bạn. –
Trình biên dịch không thể kiểm tra điều đó. Mỗi lớp thực hiện Serializable có thể chứa một trường không chuyển tiếp, không thể tuần tự hóa, điều này sẽ dẫn đến một ngoại lệ thời gian chạy. Và một ArrayList
@RohitJain: Đề xuất của bạn chỉ đảm bảo rằng các đối tượng trong danh sách có thể được tuần tự hóa, nhưng không phải là chính việc thực hiện Danh sách. – MrD