我是Groovy的新手,我对使用map有疑问:
我知道我能做到:
def map = [key:"value"]
但是如果我这样做意味着什么:
Map<String, String> map = ["1":1, "2":"2"]
此代码编译,但映射实际上不是String-> String映射:
map.each({println it.key + ":" + it.value + "[" + it.value.class + "]"})
它打印:
1:1 [类java.lang.Integer]
2:2 [类java.lang.String]
任何人都可以帮助我理解如何使用String-> String显式键入地图可以将字符串分配给包含String-> Integer的地图对象?谢谢!
===更新===
感谢@GrailsGuy提供的链接,如果我将@TypeChecked用于包含在方法中的上述代码,则会抛出错误:
[Static type checking] - Incompatible generic argument types. Cannot assign java.util.Map <java.lang.String, java.io.Serializable> to: java.util.Map <String, String>
这个解释现在很有意义.