Swa*_*rma 34 java collections inheritance serialization list
那为什么java.util.List没有实现Serializable,而像子类LinkedList,Arraylist怎么办?它似乎不是违反继承原则吗?例如,如果我们想通过网络发送Linkedlist,我们必须写:
new ObjectOutputStream(some inputStream).writeObject(some LinkedList);
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都那么好,但在阅读另一方面的对象时,我们必须明确地说LinkedList l = (LinkedList)objectInputStream.readObject();而不是List l = (List)objectInputStream.readObject();.如果我们曾经更改编辑功能,从LinkedList地说ArrayList,我们也将不得不改变阅读部分.拥有List工具Serializable可以解决问题.
Aar*_*ron 40
List没有实现,Serializable因为它不是列表的关键要求.无法保证(或需要)List可以序列化每个可能的a实现.
LinkedList并ArrayList选择这样做,但这是特定于他们的实施.其他List实现可能不是Serializable.
List是一个接口并使其扩展Serializable意味着List的任何实现都应该是可序列化的.
serializable属性不是List抽象的一部分,因此不应该是实现所必需的.
| 归档时间: |
|
| 查看次数: |
28590 次 |
| 最近记录: |