Я пытаюсь использовать целевой тип, чтобы указать тип литерала коллекции:
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. По какой-то причине Xtend пытается сгенерировать Set
, хотя целевой тип — HashMap
.
Однако, если я изменю целевой тип на Map
, он сгенерирует карту, как и ожидалось.
В документах Xtend говорится
Кроме того, xtend поддерживает литералы коллекций для создания неизменяемых коллекций и массивов в зависимости от целевого типа.
поэтому я подумал, что могу контролировать тип неизменяемой карты, которую я получаю.
Расширенная версия: 2.9.0