비교기를 사용하여 TreeMap을 직렬화 할 수 있습니까 ??자바 직렬화 비교기
나는 비교자를 추가 할 때 비교기없이 트리 맵을 잘 직렬화한다. 예외를 던진다.
비교기를 일시적으로 선언해도 여전히 작동하지 않습니다. 모든 트리 맵을 일시적으로 만들면 작동하지만 그럴 경우 트리를 직렬화하지 않습니다.
비교기를 사용하여 TreeMap을 직렬화 할 수 있습니까 ??자바 직렬화 비교기
나는 비교자를 추가 할 때 비교기없이 트리 맵을 잘 직렬화한다. 예외를 던진다.
비교기를 일시적으로 선언해도 여전히 작동하지 않습니다. 모든 트리 맵을 일시적으로 만들면 작동하지만 그럴 경우 트리를 직렬화하지 않습니다.
직렬화하려고하는 모든 클래스는 java.io.Serializable
인터페이스를 구현해야합니다. 또한 클래스의 각 멤버 변수는 Serializable
이어야합니다. 사실, 전체 계층 구조가 있어야합니다.
자세한 내용은 this을 참조하십시오. (다른 곳에서이 문서에 언급 된 바와 같이) 기타 고려할 사항 :
Comparator 필드를 인스턴스 멤버가 아닌 정적 멤버로 변경하는 것만 큼 간단 할 수도 있습니다.
public final static Comparator<String> ID_IGN_CASE_COMP
다른 모든 필드가 Serializable인지 확인해야하지만 시작해야합니다.
이것은 아닙니다. 그 때문에, Comparator는 직렬화 가능하지 않습니다 만, 일시적이라고 선언해도, Comparator를 사용하는 TreeMap가 있기 때문에 (자) 슬로우됩니다. – d0pe
그렇다면 반드시 Comparator Serializable을 만드는 것이 좋습니다. –
TreeMap은 특별한 일을하지 않습니다. 여기. 직렬화하는 TreeMap와 비교하지 않는 것의 유일한 차이점은 ... 비교기가 직렬화 할 수 없다는 것입니다.
비교기를 어떻게 구현합니까? transient 선언은 Transient 참조가없는 TreeMap 클래스에 의미가 없습니다.
예외는 무엇입니까?
직렬화하려는 클래스의 객체는 무엇입니까? –
프로그램의 모든 클래스가 serialize를 구현하고 가져옵니다. 동물원 클래스 – d0pe
예외를 제공하십시오. 비교기가 직렬화 할 수 없지만 스택 추적에서 어떤 클래스가 실패했는지를 알 수 있습니다. – PSpeed