我試圖用一個目標類型指定一個集合字面的類型:如何爲集合文字指定目標類型?
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