2012-04-18 4 views
0

대규모 enum 인스턴스를 serialize하기 위해 프록시 개체가 해당 enum 인스턴스를 고유하게 식별하는 아주 작은 개체가 될 "serialization proxy"를 사용하려고 생각했습니다. 그러나 나는 어떤 read/writeObject 또는 resolve/replace 메쏘드도 enum에 대해 무시된다는 것을 알았다. 그래서 내 질문은 어떻게 효율적으로 큰 enum 인스턴스를 serialize 할 것이라고? 문자열/XML 표현이 가능하지만 내 감정은 이것이 유지 관리 문제 일 것이라고 생각합니다.Java : Java5 enum 사용자 지정 serialization

+4

'열거 형'식별자는 스트림 당 한 번만 전송됩니다. 이것이 당신에게 큰 문제라고 확신합니까? –

답변

3

당신은 이미 자바 직렬화에 의해 기본적으로 이루어집니다 무엇을 개혁하고 있습니다 : http://docs.oracle.com/javase/1.5.0/docs/guide/serialization/relnotes15.html에서

인용구 :

지원에 새로 열거 유형, 을 처리하기 위해 직렬화에 추가되었습니다

버전 5.0. enum 인스턴스를 serialize하는 규칙은 "일반"serializable 개체를 serialize하는 규칙과 다릅니다. enum 인스턴스의 serialize 된 형식은 기본 열거 형 유형을 식별하는 정보와 함께 열거 형 상수 이름으로 구성됩니다. 역 직렬화 동작도 다릅니다. 클래스 정보 이 적절한 열거 형 클래스를 찾는 데 사용되며 Enum.valueOf 메서드가 해당 클래스와 함께 수신되고 수신 된 상수 이름이 순서로 반환되어 반환 할 열거 형 상수를 가져옵니다.