Chciałbym głęboko sklonować listę. dlatego mamy metodę
// apache commons method. This object should be serializable
SerializationUtils.clone ( object )
więc teraz, aby sklonować moją listę, powinienem najpierw przekonwertować ją na serializowalny. Czy można przekonwertować listę na listę serializowalną?
java
serialization
collections
apache-commons
Rakesh Juyal
źródło
źródło
SerializationUtils.clone()
wymaga argumentu typuSerializable
, więc jeśli twoja zmienna jest typuList
, musisz ją rzucić.List<MyClass> myObjs = new ArrayList<MyClass>();
nie spełniaSerializable
, aleArrayList<MyClass> myObjs = new ArrayList<MyClass>();
spełnia.<T extends List<Foo> & Serializable> setFooList(T list)
, który wymaga, aby wywołujący przekazał Ci wystąpienie implementacji listy, która jest również możliwa do serializacji.Jak już wspomniano, większość standardowych implementacji
List
można serializować. Należy jednak upewnić się, że obiekty, do których istnieją odwołania / zawarte na liście, są również możliwe do serializacji.źródło
List
jest to interfejs, który się nie rozszerzaSerializable
lub jakikolwiek interfejs, który to robi.List
Pliki, których nie można serializować, mogą nie być powszechne w standardowych bibliotekach, ale to nie oznacza, że pierwsze zdanie jest prawidłowe.Lista to tylko interfejs. Pytanie brzmi: czy rzeczywista implementacja listy jest możliwa do serializacji? Mówiąc o standardowych implementacjach list ( ArrayList , LinkedList ) ze środowiska wykonawczego Java, większość z nich już jest.
źródło