[java] Java에서 목록을 직렬화하는 방법은 무엇입니까?

목록을 딥 복제하고 싶습니다. 이를 위해 우리는 방법이 있습니다

// apache commons method. This object should be serializable
SerializationUtils.clone ( object )

이제 내 목록을 복제하려면 먼저 직렬화 가능으로 변환해야합니다. 목록을 직렬화 가능 목록으로 변환 할 수 있습니까?



답변

의 모든 표준 구현은 java.util.List이미 java.io.Serializable.

그래서 비록 java.util.List자체의 하위 유형 아니다 java.io.Serializable, 그것의 목록을 캐스팅하는 것이 안전해야 Serializable당신이 같은 표준 구현 중 하나 알고만큼, ArrayList또는 LinkedList.

확실하지 않은 경우 먼저 목록을 복사 (예 new ArrayList(myList):)하면 직렬화 가능하다는 것을 알 수 있습니다.


답변

이미 지적했듯이의 대부분의 표준 구현 List은 직렬화 가능합니다. 그러나 목록 내에서 참조 / 포함 된 개체 직렬화 할 수 있는지 확인해야합니다 .


답변

목록 은 단순한 인터페이스입니다. 문제는 실제 목록 구현이 직렬화 가능합니까? Java 런타임 의 표준 List 구현 ( ArrayList , LinkedList ) 에 대해 말하면 대부분은 실제로 이미 있습니다.


답변