Почему java.util.List
не реализует Serializable
, а подклассы типа LinkedList
, Arraylist
do? Разве это не похоже на принципы наследования? Например, если мы хотим отправить Linkedlist по сети, мы должны написать:
new ObjectOutputStream(some inputStream).writeObject(some LinkedList);
Пока все хорошо, но, читая объект с другой стороны, мы должны объяснить, что LinkedList l = (LinkedList)objectInputStream.readObject();
вместо List l = (List)objectInputStream.readObject();
. Если бы мы когда-либо меняли функциональность записи от LinkedList
, чтобы сказать Arraylist
, нам также придется изменить часть чтения. Реализация Serializable
реализации List
могла бы решить проблему.