我试图用一个目标类型指定一个集合字面的类型:如何为集合文字指定目标类型?
val java.util.HashMap<String,String> map = #{
'a' -> 'b'
}
,但我得到:
HelloWorld.java:212: error: incompatible types: Set<Object> cannot be converted to HashMap<String,String>
final HashMap<String, String> map = Collections.<Object>unmodifiableSet(CollectionLiterals.<Object>newHashSet(_mappedTo, _mappedTo_1, _mappedTo_2, _mappedTo_3));
请注意,这是一个Java编译错误,而不是一个的Xtend一个。由于某种原因,即使目标类型为HashMap
,Xtend也试图生成Set
。
但是,如果我将目标类型更改为Map
,它会按预期生成一个映射。
此外XTEND支持收集文字创建不可改变集合和数组,根据目标类型
,所以我想我能控制不可修改的地图,我得到的类型背部。
的Xtend版本:2.9.0
不错。看到你的答案后,我发现了一个[类似的解决方案](http://stackoverflow.com/a/7345751/498594)纯Java。 – Kelvin