リストのクローンを作成したいと思います。そのために私たちは方法を持っています
// apache commons method. This object should be serializable
SerializationUtils.clone ( object )
したがって、リストのクローンを作成するには、最初にそれをシリアル化可能に変換する必要があります。リストをシリアル化可能なリストに変換することは可能ですか?
リストのクローンを作成したいと思います。そのために私たちは方法を持っています
// apache commons method. This object should be serializable
SerializationUtils.clone ( object )
したがって、リストのクローンを作成するには、最初にそれをシリアル化可能に変換する必要があります。リストをシリアル化可能なリストに変換することは可能ですか?
回答:
のすべての標準実装はjava.util.Listすでに実装されていますjava.io.Serializable。
したがって、java.util.Listそれ自体はのサブタイプではありませんが、またはのような標準実装の1つであることがわかっている限りjava.io.Serializable、リストをにキャストしても安全Serializableです。ArrayListLinkedList
よくわからない場合は、最初にリストをコピーして(のようなものを使用してnew ArrayList(myList))、シリアル化可能であることがわかります。
SerializationUtils.clone()型Serializableに引数が必要であるため、変数が型のList場合は、それをキャストする必要があります。
List<MyClass> myObjs = new ArrayList<MyClass>();満たしていませんSerializableが、ArrayList<MyClass> myObjs = new ArrayList<MyClass>();ありません。
<T extends List<Foo> & Serializable> setFooList(T list)、呼び出し元は、シリアル化可能なリスト実装のインスタンスを渡す必要があります。
すでに指摘したように、のほとんどの標準実装Listはシリアライズ可能です。ただし、リスト内で参照/含まれているオブジェクトもシリアル化可能であることを確認する必要があります。
List拡張しないSerializableインターフェイス、または拡張するインターフェイスです。Listシリアル化できないsは、標準ライブラリでは一般的ではないかもしれませんが、それでは最初の文が正しくなりません。