GroovyMap内部表示

ut6juiuv  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(89)

我知道groovy使用java.util.ArrayList来表示使用数组文字创建的对象,如下所示:我想了解Groovy使用什么底层对象来创建一个如下所示的Map:my_map = [:]。我写了下面的代码:

7 array = []
  8 array[1] = 'a'
  9 array[2] = 'b'
 10 println array.class.name
 11 println array
 12 
 13 my_map = [:]
 14 my_map['OK'] = 200
 15 println my_map.class
 16 println my_map

以上代码生成的输出为:

java.util.ArrayList
[null, a, b]
null
[OK:200]

请注意,my_map上缺少.class属性。为什么会发生这种情况?

xyhw6mcr

xyhw6mcr1#

my_map是一个Map。在groovy中,map.key可以方便地从Map中获取与键相关联的值。
这里的问题是,它正在寻找一个名为class的键,但没有找到。
要获取Map的类,需要使用my_map.getClass()显式请求它

相关问题