In argomenti di tipo Java, fa si estende E> media rigorosamente sottotipi solo? o che via E anche bastare?
-
01-10-2019 - |
Domanda
In Java argomenti di tipo, significa rigorosamente sottotipi solo? o che via E anche bastano?
Soluzione
Sì, super
e extends
dà limiti inferiore e superiore, rispettivamente, all inclusive.
Ecco una citazione da Angelika di Langer Generics FAQ :
Che cosa è un jolly limitato?
Un jolly con un superiore aspetto rilegati come
? extends Type
e si distingue per la famiglia di tutti i tipi che sono sottotipi diType
, tipoType
essere inclusi .Type
è chiamato il limite superiore .Un jolly con un limite inferiore appare come
? super Type
e si distingue per la famiglia di tutti i tipi che sono supertipi diType
, tipoType
essere incluso .Type
è chiamato il limite inferiore .
Altri suggerimenti
Non è rigorosa; E
sarebbe sufficiente.
List<? extends Animal> animalList=new List<Dog>();
List<? extends Animal> animalList=new List<Animal>();
Sia le linee di compilazione senza alcun errore. Ogni funzione prendendo la lista come parametro capisce che gli oggetti nella lista sono di tipo E o un sottotipo di E.