ArrayList<Integer>[] Listen = new ArrayList<Integer>[11];???
-
Ich möchte eine Liste von Listen um genau zu sein möchte ich eine Liste die als Elemente 11 weitere Listen enthält - ich dachte es geht vielleicht so:
ArrayList<Integer>[] Listen = new ArrayList<Integer>[11];
der Compiler mekert mich aber an
jetzt habe ich es so gelöst:
private class Liste extends ArrayList<Integer> { Liste() { super(); // ist das notwendig oder wird der Konstuktor der Basisklasse eh automatisch aufgerufen wie in c++ } } private Liste[] Listen = new Liste[11];
-
Da haben die Generics von Java leider den bekannten Nachteil, dass der Typparameter zur Laufzeit unbekannt ist. Du kannst also kein Array eines generischen Typs erstellen. Ein Workaround wäre das hier:
ArrayList<Integer>[] listen = new ArrayList[11]; listen[0].add(new Integer(5)); listen[0].add(new String("skudfh"));
Du bekommst hier eine Warnung, die du abstellen müsstest. Es ist sehr unschön, aber wenigstens statisch typsicher.
Das super() kannst du weglassen.
-
Das mit new String() soll btw. einen Compilerfehler auslösen, war als Demonstration gedacht, hab ich nur vergessen, dazu zu schreiben.