2015-03-30 10 views
5

Sulla base delle informazioni fornite nella link, si dice che:Qual è lo scopo della lista <?> se si può inserire solo un valore nullo?

E 'importante notare che List<Object> e List<?> non sono la stessa. È possibile inserire un oggetto o qualsiasi sottotipo di oggetto in un List<Object>. Ma puoi inserire solo null in un List<?>.

A cosa serve l'utilizzo di List<?> quando è possibile inserire solo null?

Per esempio,

methodOne(ArrayList<?> l): possiamo usare questo metodo per ArrayList di qualsiasi tipo, ma entro il metodo non possiamo aggiungere nulla alla lista, tranne null.

l.add(null);//(valid) 
l.add("A");//(invalid) 

risposta

11

Si utilizzano i caratteri jolly illimitati quando l'elenco (o la raccolta) è di tipi sconosciuti.

Come il tutorial dice, è utilizzato quando si desidera ottenere informazioni su qualche lista, come la stampa il suo contenuto, ma non sai che tipo si potrebbe contenente:

public static void printList(List<?> list) { 
    for (Object elem: list) 
     System.out.print(elem + " "); 
    System.out.println(); 
} 

non dovreste usarlo quando si desidera inserire valori nell'elenco, poiché l'unico valore consentito è null, perché non si conoscono i valori che contiene ..

4

È possibile ottenere elementi dalla vostra lista.

List<?> viene in genere utilizzato come tipo per un elenco di oggetti con tipo sconosciuto restituiti da un metodo o giù di lì, da cui si leggono gli elementi anziché aggiungerli.

Problemi correlati