1
Ich habe den folgenden Code in groovy:Groovy CompileStatic mit generischen Listen
class Test {
List<Integer> yo(boolean x) {
List<Integer> res = x ? [] : [1, 2, 3]
}
}
Es kompiliert gut, bis ich @CompileStatic
Anmerkung zur Klasse hinzuzufügen. Dann Kompilierung schlägt mit
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]
Ist es wirklich erwartet, dass Groovy nicht den generischen Typen dieser leeren Liste []
ableiten?
'[]' hat eine iferred Typ 'Liste
In diesem speziellen Fall LHS vom Typ' Liste 'ich irgendwie erwartet' [] 'sein von der gleichen Art mit ... Weil' Liste l = [] 'funktioniert ... –
Nikem
Das sieht aus wie Groovy Bug. – Dany