Więc szukałem na niektóre kodu Java i natknęliśmy się na:Co oznacza mówienie <? rozciąga SomeObject> zamiast <SomeObject>
List<? extends SomeObject> l;
zasadzie lista ta akceptuje wszystkie obiekty, które są pewnego rodzaju SomeObject - SomeObject sam lub jego spadkobierców. Ale według polymophism, to spadkobiercy mogą również być seens jak SomeObject, więc to będzie działać jak dobrze:
List<SomeObject> l;
Więc dlaczego ktoś miałby używać pierwszą opcję, gdy druga jest jasno określony i praktycznie identyczne?
ta jest dobrze wyjaśnione w samouczku Java: http: //docs.oracle.com /javase/tutorial/extra/generics/wildcards.html –