2015-03-30 4 views
5

Basierend auf den Informationen in den link zur Verfügung gestellt, heißt es, dass:Was ist der Zweck der Liste <?>, wenn man nur einen Nullwert einfügen kann?

Es ist wichtig, dass List<Object> und List<?> nicht gleich sind zu beachten. Sie können ein Objekt oder einen beliebigen Untertyp des Objekts in eine List<Object> einfügen. Aber Sie können null nur in List<?> einfügen.

Was ist die Verwendung List<?> der Verwendung, wenn nur null eingesetzt werden kann?

Zum Beispiel

methodOne(ArrayList<?> l): können wir diese Methode für ArrayList jeglicher Art verwenden, aber innerhalb der Methode können wir nichts zur Liste außer null hinzufügen.

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

Antwort

11

Sie verwenden die unbeschränkten Platzhalter, wenn die Liste (oder die Auflistung) unbekannte Typen ist.

Wie das Tutorial sagt, es verwendet wird, wenn Sie Informationen über bestimmte Liste erhalten möchten, wie sein Inhalt drucken, aber Sie nicht wissen, welche Art es enthalten sein könnten:

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

Sie shouldn Verwenden Sie es nicht, wenn Sie Werte in die Liste einfügen möchten, da der einzige zulässige Wert null ist, weil Sie nicht wissen, welche Werte er enthält.

4

Sie können Elemente aus der Liste bekommen.

List<?> wird normalerweise als ein Typ für eine Liste von unbekannten typisierten Objekten verwendet, die von einer Methode oder so zurückgegeben werden, von der Sie Elemente lesen, anstatt sie hinzuzufügen.

Verwandte Themen