(具体来说,org.codehaus.groovy.util.AbstractConcurrentMap)
在对混合Java / Groovy的应用程序进行一些分析时,我看到很多对AbstractConcurrentMap类的引用,其中没有一个在代码库中是显式的。当groovy动态def myMap = [:]
样式中实例化地图时,groovy是否使用此类?当groovy选择使用它而不是java.util.HashMap时,有什么规则吗?
有没有人比较这两者有任何表现信息?我粗略的“眼球检查”说AbstractConcurrentMap似乎要慢得多 - 有人知道我是不是正确?
答案 0 :(得分:0)
休闲咆哮:Groovy的API javadoc看起来很糟糕(没有描述这个抽象类的内容和/或内容)。
但是从我所看到的,至少有两个类扩展了这个抽象类。
org.codehaus.groovy.reflection.MixinInMetaClass
org.codehaus.groovy.reflection.ClassInfo$ClassInfoSet
两者(正如您可以从包名称中猜到的)必须使用Groovy中的反射代码执行某些操作。所以我想Groovy为一些内部的东西实例化这个抽象类的实现(例如你对java / groovy map的使用)
顺便说一下。 ClassInfo
类(包含ClassInfoSet)上的javadoc简洁地陈述
处理我们想要的所有信息 关注班级
我认为这只对作者“Alex.Tkachman - ”
有意义答案 1 :(得分:0)
在Groovy 1.6.3版中,以下内容:
println [:].getClass()
打印
class java.util.LinkedHashMap
表示LinkedHashMap
是用于文字地图的Map实现。