Giovx24 ha scritto:
In ogni caso posso solo leggere dalla lista "numeri" non posso modificarla giusto?
Sì, puoi solo "estrarre" come Number (o al limite supertipo, es. Object). Ma non puoi inserire nulla, eccetto un null letterale che è lecito.
Un List<? extends Number> NON vuol dire una lista che contiene qualunque cosa
è-un Number (quello è List<Number>). Vuol dire una lista di cui NON sai quale è la parametrizzazione concreta, con l'unico indizio in più che si è certi che è sicuramente una parametrizzazione Number o più "sotto".
Non puoi inserire es. un Float. E se la lista passata fosse un <Integer> ?
Non puoi inserire es. un Long. E se la lista passata fosse un <Double>?
E' questo il motivo. Ma infatti un <? extends Number> serve proprio solo quando devi "estrarre" e basta. E in un metodo come quel "somma" sarebbe assolutamente sufficiente.