2009-03-13 7 views
2

Castor를 사용하여 Java 객체를 마샬링/비 마샬링하고 그 중 하나에는 EnumMap이 포함되어 있습니다. Castor 마샬/언 마샬 Enum 맵을 사용할 수 있습니까? 중첩 된 HashMaps가있는 매핑 파일이 있지만 Castor를 통해 EnumMap을 푸시 한 적이 없습니다. 가능한 경우 매핑 파일을 통해 어떻게 처리됩니까?Castor가 EnumMap을 마샬링/언 마샬링 할 수 있습니까?

답변

2

큰 문제 중 하나는 적어도 Java 1.5에서는 열거 형을 직렬화하고 복원 할 수 없다는 것입니다. 그리고 Java 1.6이 아니라고 생각합니다.

열거 형은 기본적으로 직렬화되거나 XMLEncoded 될 수 없기 때문에 EnumMap을 직렬화 할 수 있는지 의심 스럽습니다. castor web page에서 : 당신은 항상 형태 보증 된 열거 클래스를 처리하기위한 자신 만의 사용자 정의 FieldHandler를 사용할 수 있지만

은 캐스터 클래스 이러한 유형의 처리 에 내장 된 접근 방식을 가지고있다. 형식 안전 열거 형 클래스가 public static valueOf (String) 메서드 인 경우 Casters는 열거 형의 적절한 인스턴스가 반환되도록 해당 메서드를 호출합니다. 참고 : 도 매핑 파일 (위의 7.4 섹션 참조)에서 기본 체크 인을 사용하지 않도록 설정해야합니다 (자세한 내용은 을 참조하십시오).

그래도 작동하지 않는다면 field handler을 작성해야합니다.

조금 도움이 되었기를 바랍니다.

관련 문제