Generischer Typ für Arraylist von Arraylists

8

Bei der normalen Initialisierung der Array-Liste Wir haben den generischen Typ wie folgt definiert,

%Vor%

Aber im Falle von ArrayList of ArrayLists, wie können wir seinen generischen Typ definieren?

Der Code für die Array-Liste der Array-Listen lautet wie folgt:

%Vor%

Teilen Sie einfach die Syntax, wenn jemand eine Idee dazu hat ..!

    
Rajaprabhu Aravindasamy 29.02.2012, 10:25
quelle

5 Antworten

12

Sie können das einfach tun

%Vor%

Wenn Sie ein Array von Listen benötigen, können Sie dies tun

%Vor%

und ignorieren oder unterdrücken Sie die Warnung.

    
Daniel Lubarov 29.02.2012, 10:28
quelle
4

Wenn Sie (wirklich) eine Liste von Listen wollen, dann ist dies die korrekte Deklaration:

%Vor%

Wir können keine generischen Arrays erstellen. new List<String>[0] ist ein Kompilierungsfehler.

    
Andreas_D 29.02.2012 10:28
quelle
0

In etwa so:

%Vor%

Machen Sie den Typ der inneren Liste, was Sie wollen; Dies dient nur zur Veranschaulichung.

    
duffymo 29.02.2012 10:29
quelle
0

Sie haben Recht: Das sieht wahnsinnig aus. (Möge es ein Bug ...) Anstatt

zu verwenden %Vor%

Verwenden:

%Vor%

funktioniert für die Deklaration, auch wenn Sie kein generisches Generikum beschreiben!

    
Peter Rader 29.02.2012 10:38
quelle
0

Sie sprechen von einem Array von Listen (ArrayLists, um genauer zu sein). Java erlaubt keine generische Array-Generierung (außer bei Verwendung von Platzhaltern, siehe nächsten Abschnitt). Sie sollten also entweder Generika für das Array vergessen oder eine Liste anstelle eines Arrays verwenden (viele dafür vorgeschlagene Lösungen).

Zitat aus IBM Artikel :

  

Eine weitere Folge der Tatsache, dass Arrays kovariant sind, Generika aber nicht, ist, dass Sie ein Array eines generischen Typs nicht instantiieren können (new List [3] ist illegal), es sei denn, das Argument type ist ein unbeschränkter Platzhalter (new List & lt;? & gt; [3] ist legal).

    
Lycha 29.02.2012 10:35
quelle

Tags und Links