我希望Map包含数字映射,我这样做:
Long long1 = 44l;
Long long2 = 45l;
def myMap = [long1: 26, long2: 27];
println(myMap)
但输出的是:
[long1:26, long2:27]
我希望它是:
[44: 26, 45: 27]
我需要通过变量来做到这一点,因为我不知道在运行之前它们会是什么值?
感谢。
答案 0 :(得分:7)
将地图声明更改为以下内容:
def myMap = [(long1): 26, (long2): 27]
当您声明Map时,Groovy正在进行一些隐式的变量名到字符串转换,因此它不是评估long1
而是使用long1
作为字符串键名。另请参阅this StackOverflow question。