Hej,
zastanawia mnie dlaczego w takiej sytuacji dostaję błąd niezgodności typu.
Jeżeli oczekuje kolekcji czarodziejów to dlaczego nie mogę dać kolekcji gandalfów ?
Dlaczego tak się dzieje, z czego to wynika ?
0
5
Z tego, ze kolekcje Javowe nie sa kowariantne.
List<String>
nie jest podtypem List<Object>
. Mozesz w metodzie przyjac
List<? extends Wizard>
- powinno zadzialac.
Tematy: java generics, wildcard, covariance/contravariance
3
Rozwijajac nieco dlaczego
to co napisałeś nie ma sensu:
List<String> stringi = new ArrayList<>();
stringi.add("dupa");
List<Object> obiekty = stringi; //?!
obiekty.add(1);
I nagle lista stringi
która jest List<String>
miałaby w sobie inta
i byłoby to troche smutne.