Błąd kompilacji dla niezgodności typów

0

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 ?

screenshot-20220309174259.png

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1