2013-08-01 5 views
0

https://code.google.com/p/google-collections/source/browse/trunk/src/com/google/common/collect/AbstractMultimap.java?r=117google-collections를 사용하는 이유 AbstractMultimap 클래스는 멤버 변수에 transient 키워드를 사용합니까?

AbstractMultimap은 Serializable을 구현합니다.

내 눈에는 실제 데이터가 map 및 totalSize 변수에 저장됩니다.

그러나 두 변수는 transient 키워드로 선언됩니다.

이 사실은 직렬화 권한이 없다는 것을 의미합니다.

AbstractMultimap 클래스가 실제로 백업을 Map 구현을 포함하지 않기 때문이다
private transient Map<K, Collection<V>> map; 
private transient int totalSize; 

답변

2

이 사실은 더 직렬화 권리가 없다는 것을 의미하는이 관리 직렬화를 담당하는 구상 서브 클래스에서 제공하는거야?

번호

는 이러한 필드는 기본 직렬화 메커니즘 연재되지 않는다는 것을 의미한다. 상태가 실제로 자식 클래스의 writeObject() 메서드 ...에서 직렬화되고 있습니다.

2

;

For serialization to work, the subclass must specify explicit 
readObject and writeObject methods.