在Groovy中映射<uuid,string =“”> map </uuid,>

时间:2015-03-09 21:56:39

标签: groovy

为什么这在Groovy中有效:

Map<String, String> map = ["k1"  : "p1",  "k2"  : "p2"]

但这不是吗?

Map<UUID, String> map = [UUID.randomUUID() : "p1", UUID.randomUUID() : "p2"]

由于

1 个答案:

答案 0 :(得分:2)

您必须将密钥放在()

Map<UUID, String> map = [(UUID.randomUUID()): "p1", (UUID.randomUUID()): "p2"]

Groovy假设:之前的标记只是字符串键(例如,你的第一个例子也可以写成:[k1: "p1", ...]并且可以正常工作。但是因为你的方法调用没有有效的字符串(你甚至不希望它们被解释为字符串)它编译失败。

请参阅http://docs.groovy-lang.org/docs/next/html/documentation/#_maps

  

当您需要在地图定义中将变量值作为键传递时,必须用括号括起变量或表达式