私はコレクションのリテラルのタイプを指定するターゲット・タイプを使用しようとしている:コレクションリテラルのターゲットタイプを指定する方法は?
val java.util.HashMap<String,String> map = #{
'a' -> 'b'
}
をしかし、私は取得:これはJavaのコンパイルエラーではなく、XTEND一つであること
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));
注意を。何らかの理由で、ターゲットタイプがHashMap
であっても、XtendはSet
を生成しようとしています。
ただし、ターゲットタイプをMap
に変更すると、期待どおりのマップが生成されます。
Xtend docsが加算XTENDで
ので、私は私が取得変更不可能なマップの種類を制御できると思っていたターゲット型
に応じて、不変コレクションと配列を作成するために、コレクションリテラルをサポートして言いますバック。
XTENDバージョン:あなたはあなたが望むそのように行うことができません2.9.0
ニース。あなたの答えを見た後、純粋なjavaのための[類似の解決策](http://stackoverflow.com/a/7345751/498594)が見つかりました。 – Kelvin