2009-11-19 2 views
0

(특히, org.codehaus.groovy.util.AbstractConcurrentMap)Groovy는 어떤 상황에서 AbstractConcurrentMap을 사용합니까?

, 나는 AbstractConcurrentMap 클래스에 대한 참조를 많이보고 있어요 자바/멋져요 혼합 우리의 응용 프로그램 이잖아 일부 프로파일 링을하는 동안, 아무도 명시 적 없다 코드베이스에. 그루비 동적 인 def myMap = [:] 스타일로지도가 인스턴스화 될 때 groovy가이 클래스를 사용합니까? 그루비가 java.util.HashMap과 반대로이를 사용할 때 어떤 규칙이 있습니까?

그리고 두 사람 모두 성능 정보가 있습니까? 내 거친 "안구 검사"는 AbstractConcurrentMap이 훨씬 느린 것 같아요.

답변

0

캐주얼 런트 : Groovy의 API javadoc이 나 빠지다 (이 추상 클래스의 용도 및/또는 설명 없음).

하지만이 추상 클래스를 확장하는 클래스는 적어도 2 개 있습니다.

org.codehaus.groovy.reflection.MixinInMetaClass 

org.codehaus.groovy.reflection.ClassInfo$ClassInfoSet 

둘 다 (패키지 이름에서 알 수 있듯이) 그루비의 반사 코드로 무엇인가해야합니다. Groovy가 내부 클래스에 대한이 추상 클래스의 구현을 인스턴스화 한 것 같습니다 (예 : Java/Groovy 맵의 사용으로)

Btw. 합니다 (ClassInfoSet를 둘러싸)에 ClassInfo 클래스의 javadoc에서는 laconically 클래스 난 단지 저자 "알렉스 말이 생각

에 대해 계속 우리가 에 원하는 모든 정보를

핸들을 말한다. Tkachman - "

0

그루비 버전 1.6.3에서, 다음 :

println [:].getClass() 

PRI 국세청

클래스 java.util.LinkedHashMap

LinkedHashMap 리터럴지도에 사용되는지도 구현이 있음을 나타냅니다.

관련 문제