Je suis en train d'utiliser un type de cible pour spécifier une collection de type de littéral:Comment spécifier le type de cible pour les littéraux de collection?
val java.util.HashMap<String,String> map = #{
'a' -> 'b'
}
mais je reçois:
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));
Notez que ceci est une erreur de compilation java, pas un Xtend un. Pour une raison quelconque, Xtend essaie de générer un Set
même si le type de cible est un HashMap
.
Cependant, si je change le type de cible à Map
, il génère une carte comme prévu.
Le Xtend docs disent
En plus Xtend soutient la collecte littéraux pour créer des collections et des tableaux immuables, en fonction du type cible
donc je pensais que je pouvais contrôler le type de carte non modifiable je reçois arrière.
Version Xtend: 2.9.0
Nice. Après avoir vu votre réponse, j'ai trouvé une [solution similaire] (http://stackoverflow.com/a/7345751/498594) pour Java pur. – Kelvin