なぜjava.util.List
はSerializable
を実装していませんが、サブクラスはLinkedList
,Arraylist
などですが、相続の原則に反するように見えませんか?例えば、我々は、ネットワーク上でのLinkedListを送信したい場合は、私たちが書く必要があります:java.util.ListがSerializableを実装していないのはなぜですか?
new ObjectOutputStream(some inputStream).writeObject(some LinkedList);
これまでのところは良いが、他の側にオブジェクトを読みながら、私たちは、明示的にLinkedList l = (LinkedList)objectInputStream.readObject();
の代わりList l = (List)objectInputStream.readObject();
を言わなければなりません。書き込み機能をLinkedList
からArrayList
に変更する場合は、読み込み部分も変更する必要があります。 List
を実装するとSerializable
が問題を解決しました。
私はあなたの声明の第2部分が正確ではないと思います。私はそれを試してみる機会がなかったと思います。どのようなエラーが表示されますか? –