在Groovy Map中使用Longs作为键

Bre*_*ako 1 groovy

我想要一个包含数字映射的Map,我这样做:

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

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

println(myMap)
Run Code Online (Sandbox Code Playgroud)

但输出的是:

[long1:26, long2:27]
Run Code Online (Sandbox Code Playgroud)

我希望它是:

[44: 26, 45: 27]
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

gra*_*hey 7

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

def myMap = [(long1): 26, (long2): 27]
Run Code Online (Sandbox Code Playgroud)

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