相关疑难解决方法(0)

Generics上的Groovy地图和Java地图

我是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>

这个解释现在很有意义.

java groovy

9
推荐指数
1
解决办法
8202
查看次数

标签 统计

groovy ×1

java ×1