Groovy:map literal上的getClass方法返回null

Groovy:map literal上的getClass方法返回null,class,dictionary,groovy,null,Class,Dictionary,Groovy,Null,在Groovy中,我在代码中非常频繁地使用,并且对它的具体实现感到好奇 在尝试了一些事情之后,这个脚本最好地说明了我的困惑: def map = ["A":"B"] println map // I assume this avoids any lazy evaluation of the map println map instanceof HashMap // I tried some other impls too println map.class 并接收此输出: [A:B] true

在Groovy中,我在代码中非常频繁地使用,并且对它的具体实现感到好奇

在尝试了一些事情之后,这个脚本最好地说明了我的困惑:

def map = ["A":"B"]
println map // I assume this avoids any lazy evaluation of the map
println map instanceof HashMap // I tried some other impls too
println map.class
并接收此输出:

[A:B]
true
null
这告诉我map显然是一个HashMap,但是getClass方法不想告诉我这一点

所以我的问题是:为什么getClass返回null,有没有更合适的方法从Groovy获取运行时类信息?

您需要使用

map.getClass()
另外,它正在寻找一个名为
class


几乎是

Bah的复制品,我忘了Groovy也可以将其解释为映射键。谢谢#GroovyPuzzler,S01。我有时想知道为什么社区不团结起来,避开脚本语言。这是我开始学习Groovy以来遇到的第30个“问题”,如果我想让自己跟上Gradle的进度,我或多或少都会遇到这个问题。每个人都声称脚本语言可以提高生产率。这是对现实的嘲弄吗?当JavaScript朝着强类型和面向对象的方向发展时,基于JVM的语言却朝着相反的方向发展。历史重演。