【发布时间】:2011-06-23 01:41:06
【问题描述】:
为什么java.util.List 没有实现Serializable 而像LinkedList、Arraylist 这样的子类可以实现?这似乎不违反继承原则吗?例如,如果我们想通过网络发送 Linkedlist,我们必须这样写:
new ObjectOutputStream(some inputStream).writeObject(some LinkedList);
到目前为止一切顺利,但是在读取另一侧的对象时,我们必须明确地说 LinkedList l = (LinkedList)objectInputStream.readObject(); 而不是 List l = (List)objectInputStream.readObject();。如果我们要将写入功能从LinkedList 更改为ArrayList,我们还必须更改读取部分。让List 实现Serializable 就可以解决问题。
【问题讨论】:
-
我不认为你的陈述的第二部分是准确的,而不是我有机会尝试它。您遇到了什么样的错误?
标签: java list serialization inheritance collections