Le raccolte Java memorizzano solo oggetti, non tipi primitivi; tuttavia possiamo memorizzare le classi wrapper.
Perché questo vincolo?
class
, piuttosto dalla JVM. L'istruzione int i = 1
definisce un puntatore all'istanza singleton dell'oggetto che definisce int
nella JVM, impostato sul valore 1
definito da qualche parte nella JVM. Sì, i puntatori in Java - questo è solo astratto dall'implementazione del linguaggio. Le primitive non possono essere usate come generiche perché il linguaggio predicano che tutti i tipi generici devono essere del supertipo Object
, quindi perché viene A<?>
compilato A<Object>
in fase di esecuzione.