2010-01-27 3 views
3

일부 Trove 컬렉션에 수정할 수없는 래퍼를 추가하고 싶습니다. Trove 설명서를 확인 했으므로 쉬운 방법을 찾을 수없는 것처럼 보입니다 (분명히 간과 한 것 같습니다). Trove를이 주제 싸서에 UnsupportedOperationException가을 던지는에Java Trove 콜렉션의 수정 불가능한보기를 반환하는 방법은 무엇입니까?

그래서 나는 이러한 변경 불가능한 래퍼 I (예 : TIntLongHashMap 용) Trove를 수집을 확장하고 모든 위임하고있어 필요 이제 모든 시간으로 읽기 전용 호출 컬렉션을 수정하려고 시도하는 모든 메소드.

더 쉬운 방법이 있습니까?

참고 :이 질문은 기본 Java 모음에 관한 것이 아니며이 경우 기본 Java 모음이나 다른 Java 모음에는 관심이 없습니다.이 질문은 특히 Trove에 관한 것입니다.

답변

1

Trove API에서는 데코레이터 만 사용하여이 작업을 수행 할 수 없습니다.

3

허용 된 답변은 당시로서는 정확했지만 Trove 3는 TCollections 클래스를 통해이를 지원합니다.

예.

TIntLongMap myMap = new TIntLongHashMap(); 
TIntLongMap myUnmodifiableMap = TCollections.unmodifiableMap(myMap); 

myUnmodifiableMap.put(1, 2L); // throws UnsupportedOperationException 
관련 문제