Qual è la differenza tra List
e List<?>
? So che non posso aggiungere alcun elemento allo List<?>
. Ho un codice:Elenco ed elenco <?> in Java
List<String> myList = new ArrayList<String>();
processList(myList);
processListGeneric(myList);
public static void processList(List myList) {
Iterator it = myList.iterator();
while(it.hasNext())
System.out.println(it.next());
}
public static void processListGeneric(List<?> myList) {
Iterator<?> it = myList.iterator();
while(it.hasNext())
System.out.println(it.next());
}
Il nome dei due metodi non può essere lo stesso, perché provoca compilazione errore di tempo. Quindi c'è qualche differenza in questi due approcci?
Non viene compilato perché i due metodi avrebbero la stessa firma, poiché i generici (<>) vengono utilizzati solo dal compilatore per verificare il tipo in fase di compilazione. – Sebastien
È possibile aggiungere null ad esso. Quindi non dire che non puoi aggiungere nulla :) –
Con 'java.awt.List' usando il secondo metodo, non penso che la tua classe compilerebbe ...;) – Mikaveli