5
Per essere diretto ecco un esempio:Java Generics: On arraylist (illimitata tipo jolly), aggiungere e metodi addall si comporta in modo diverso
ArrayList <?> x = new ArrayList();
ArrayList y = new ArrayList();
x.add("abc"); // Clause 1. Compilation error - No problemo. Understood.
x.addAll(y); // Clause 2. No compilation error
Per jolly illimitata, non si può aggiungere. Perché non c'è nessun errore di compilazione sull'ultima istruzione?
Ok. Vedo il significato. La clausola 1 fallirà - poiché il tipo è noto e segue la regola generale in cui il jolly illimitato impedisce l'aggiunta. Clausola 2, poiché l'elemento del tipo è sconosciuto, utilizza la regola generale di miscelazione del codice legacy e generico. Ho capito bene? – yapkm01
sì - in caso di tipi non elaborati, tutti i materiali generici vengono scartati. – Bozho
@ yapkm01 generici aggiunti alla fine del linguaggio in modo che dovessero essere progettati in modo da consentire una facile interazione con il gran numero di librerie non generiche esistenti, di conseguenza il compilatore ignora i generici in presenza di tipi non elaborati. – josefx