Generics Java: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 46:
== Erasure ==
L' '''Erasure''' è il processo che converte il programma codificato con i generici nella forma senza di essi, che rispecchia più da vicino il [[bytecode]] prodotto. Questo termine non è del tutto corretto in quanto vengono si rimossi i generici, ma vengono anche aggiunti i cast.
L'aggiunta di questi cast non è esplicita e il linguaggio di progetto fornisce la '''Casr-iron guarantee''': ossia il cast implicito aggiunto alla compilazione dei generici: non può mai fallire. Questa è una regola che si applica per il codice che non presenta ''unchecked warnings''.
I vantaggi dell'implementazione via '''Erasure''', sono:
* mantenere le cose semplici senza aggiunta di dettagli o altro;
* mantenere le cose piccole ad esempio con una sola implementazione di List;
* semplificare l'evoluzione, la stessa libreria può essere accessibile da un codice generico e da codici legacy.
 
== Tipi parametrici varianti (Wildcard) ==