====== Type erasure ====== //Elaborazione delle pagie relative a Type Erasure e Generics di wikipedia EN// Nei linguaggi di programmazione la Type Erasure (cancellazione di tipo) si riferisce al processo, eseguito a tempo di compilazione, tramite il quale tramite il quale le informazione sul tipo vengono rimosse da un programma prima che questo venga eseguito (a run-time) . In java quindi i Generics sono implementati tramite la Type Erasure, la correttezza sui tipi è effettuata a tempo di compilazione; l'informazione sui tipi dei generics viene appunto rimossa a tempo di compilazione. Ad esempio, List verrà convertita nella versione non generica, che normalmente può contenere oggetti di qualsiasi tipo; i controlli a tempo di compilazione servono quindi a garantire la correttezza di tipo. Uno degli effetti collaterali della Type Erasure è che il parametro di tipo non può essere determinato a Runtime, ad esempio se un ArrayList viene esaminato a Runtime non esiste in genere un modo per determinare se prima della Type Erasure l'array fosse un ArrayList oppure un ArrayList. Esempio ArrayList li = new ArrayList(); ArrayList lf = new ArrayList(); if (li.getClass() == lf.getClass()) // viene valutato true System.out.println("Sono uguali"); ===== Links ===== * [[http://en.wikipedia.org/wiki/Generics_in_Java]] * [[http://en.wikipedia.org/wiki/Type_erasure]]