我知道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
属性。为什么会发生这种情况?
1条答案
按热度按时间xyhw6mcr1#
my_map
是一个Map。在groovy中,map.key
可以方便地从Map中获取与键相关联的值。这里的问题是,它正在寻找一个名为
class
的键,但没有找到。要获取Map的类,需要使用
my_map.getClass()
显式请求它