Vi chiedo di riflettere su questi due problemi.
1)
Abbiamo ( in Java ovviamente ), l'esigenza di dichiarare un array (riferimento) che ha, come tipo di riferimento, T ( generico, per intenderci <T> ) ma come effettivamente allocato Object.
In teoria uno direbbe :
T a[] = new Object[n];
Invece non si puo`. Bensi` si deve optare per :
T a[] = (T[]) new Object[n]
Un cast insomma. Il problema e` che cosi` facendo il compilatore da un errore di Warning "innocuo". ( per cui tutto funziona, ma viene sempre questo errore )
Domanda 1: esiste una sintassi alternativa che non restituisca pero` un Warning in compilazione? Notate : non ho chiesto di sopprimere il warning, altrimenti uso -x lnt.
2)
Perche` quando dichiaro un array in Java con un tipo generico non e` necessario specificare <T> nel tipo effettivamente allocato?
ClasseGen<T> a = new G[n]
Dove ClasseGen e` una classe generica.
Spiegazione ovviamente chiara!
Grazie spero siano dubbi leggittimi.
![Rolleyes [rolleyes]](http://www.megalab.it/forum/images/smilies/rolleyes.gif)