Tại sao java.util.List
không triển khai Serializable
trong khi các lớp con như LinkedList
, Arraylist
làm gì? Nó không có vẻ chống lại các nguyên tắc thừa kế? Ví dụ, nếu chúng tôi muốn gửi một LinkedList qua mạng, chúng tôi phải viết:Tại sao java.util.List không thể thực hiện Serializable?
new ObjectOutputStream(some inputStream).writeObject(some LinkedList);
Cho đến nay rất tốt, nhưng khi đọc các đối tượng ở phía bên kia chúng ta phải explicity nói LinkedList l = (LinkedList)objectInputStream.readObject();
thay vì List l = (List)objectInputStream.readObject();
. Nếu chúng tôi đã từng thay đổi chức năng viết từ LinkedList
để nói ArrayList
, chúng tôi cũng sẽ phải thay đổi phần đọc. Có List
triển khai Serializable
sẽ giải quyết được sự cố.
Tôi không nghĩ rằng phần thứ hai của tuyên bố của bạn là chính xác, không phải là tôi đã có cơ hội để thử nó. Bạn nhận được loại lỗi nào? –