# List Array - wie instanzieren



## Andi_CH (5. Sep 2011)

```
List<Component>[] colComponents
colComponents = new List[getColumnCount()];
```
-> Gibt logischerweise eine Warnung.

Wie instanziere auf die saubere, typisierte Art so einen Array?


```
colComponents = new List<Component>[getColumnCount()];
```
-> Cannot create a generic array of List<Component>


----------



## vanny (5. Sep 2011)

was nu ?
Liste (also Collection) oder Array?


```
//Liste
List<DatenTyp> listenName = new List<DatenTyp>();
//Array
DatenTyp[] arrayName = new DatenTyp[länge(int)];
//Liste von Arrays
Liste<DatenTyp[]> listenName = new Liste<DatenTyp[]>();
```

gruß Vanny


----------



## nillehammer (5. Sep 2011)

vanny hat gesagt.:
			
		

> Liste (also Collection) oder Array?


Ich glaub, Andi wollte einen Array von Listen erzeugen. Das war also Absicht. Oder kurz gesagt: Beides


			
				Andi_CH hat gesagt.:
			
		

> Wie instanziere auf die saubere, typisierte Art so einen Array?


Garnicht, das geht nicht. Wegen Type Erasure oder so...

Überlege, ob Du vielleicht statt einem Array von Listen auch mit einer Liste von Listen arbeiten kannst. Also etwa so:
[Java]
      List<List<String>> listList;

      listList = new ArrayList<List<String>>(2);
[/Java]


----------



## vanny (5. Sep 2011)

aso ^^
ok das wurd mir aus dem Post nich ganz klar ^^
jep das geht nicht, daher hatte ich das auch nicht aufgeführt.

Sry für meine Begriffsstutzigkeit;(


----------



## Andi_CH (5. Sep 2011)

Vanny: Ich will ganz genau das was oben steht - also bitte nicht zu weit denken...
Es wird da ein Array deklariert der Listen von Componenten enthält.

Auch wenn es aus aus diesem oder dem anderen Grund möglicherweise besser wäre ... nein, ich stelle jetzt nicht von Array auf etwas Anderes um - das Riskio dass der Aufwand aus dem Ruder läuft ist defintiv zu gross!

Im Originalcode steht:


```
List[] colComponents
colComponents = new List[getColumnCount()];
```

das gibt es logischerweise überall Warnungen man soll Typisieren.
Ist ja auch besser, da der Compiler dann hilft wo er kann.

Im Originalcode werden nur die Deklarationen angepasst, also soll daraus


```
List<Component>[] colComponents
colComponents = new List<Component>[getColumnCount()];
```

werden. Nur dummerweise versteht das der Compiler nicht


----------



## nillehammer (5. Sep 2011)

Andi_CH hat gesagt.:
			
		

> Auch wenn aus aus diesem oder dem anderen Grund möglicherwiese besser wäre ... nein, ich stelle jetzt nicht von Array auf etwa anderes um - das Riskio dass der Aufwand aus dem Ruder läuft ist defintiv zu gross!


Ok, wenn umstellen keine Option ist, musst Du damit leben. Damit die Warnings nicht zu sehr nerven, könntest Du die Annotation @SuppressWarnings("unchecked") benutzen.


----------



## Michael... (5. Sep 2011)

dann ist die einzige Möglichkeit:

```
List<Component>[] list = new List[10];
```
und man lebt mit der Warnung oder unterdrückt sie. ist ja nichts schlimmes dabei.


----------



## Illuvatar (5. Sep 2011)

Warum das ganze so ist:
Java theory and practice: Generics gotchas


----------

