1
У меня есть следующий код в заводной:Groovy CompileStatic с родовыми списками
class Test {
List<Integer> yo(boolean x) {
List<Integer> res = x ? [] : [1, 2, 3]
}
}
Он компилирует хорошо, пока я не добавить @CompileStatic
аннотацию к классу. Затем компиляция завершается с
Test.groovy: 5: [Static type checking] - Incompatible generic argument types. Cannot assign java.util.List <? extends java.lang.Object> to: java.util.List <Integer>
@ line 5, column 27.
List<Integer> res = x ? [] : [1, 2, 3]
ли это на самом деле ожидать, что Groovy не может вывести общий тип этого пустого списка []
?
'[]' имеет iferred тип 'List
В этом конкретном случае, имея LHS типа' List 'Я как-то ожидал' [] 'одного типа ... Потому что' List l = [] 'работает ... –
Nikem
Это похоже на ошибку Groovy. – Dany