在Groovy映射中将long用作键

在Groovy映射中将long用作键,groovy,Groovy,我想要一个包含数值映射的映射,我需要: Long long1 = 44l; Long long2 = 45l; def myMap = [long1: 26, long2: 27]; println(myMap) 但输出的是: [long1:26, long2:27] 我希望它是: [44: 26, 45: 27] 我需要通过变量来实现这一点,因为直到运行时我才知道值是什么 谢谢。将地图声明更改为以下内容: def myMap = [(long1): 26, (long2): 27]

我想要一个包含数值映射的映射,我需要:

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

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

println(myMap)
但输出的是:

[long1:26, long2:27]
我希望它是:

[44: 26, 45: 27]
我需要通过变量来实现这一点,因为直到运行时我才知道值是什么


谢谢。

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

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

当您声明映射时,Groovy正在进行一些隐式变量名到字符串的转换,因此它不计算long1,而是使用long1作为字符串键名。另请参见。

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

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

当您声明映射时,Groovy正在进行一些隐式变量名到字符串的转换,因此它不计算long1,而是使用long1作为字符串键名。另请参见。

Groovy不仅对长变量,而且对所有变量都这样做。如果我们想使用值作为键,那么必须使用答案中提到的语法。如果我们想使用值作为键,那么必须使用答案中提到的语法。