在Groovy Map中使用Longs作为键

时间:2014-02-11 16:59:10

标签: groovy

我希望Map包含数字映射,我这样做:

Long long1 = 44l;
Long long2 = 45l;

def myMap = [long1: 26, long2: 27];

println(myMap)

但输出的是:

[long1:26, long2:27]

我希望它是:

[44: 26, 45: 27]

我需要通过变量来做到这一点,因为我不知道在运行之前它们会是什么值?

感谢。

1 个答案:

答案 0 :(得分:7)

将地图声明更改为以下内容:

def myMap = [(long1): 26, (long2): 27]

当您声明Map时,Groovy正在进行一些隐式的变量名到字符串转换,因此它不是评估long1而是使用long1作为字符串键名。另请参阅this StackOverflow question