array of generics
-
Hallo,
wie muss folgendes formuliert werden ,daß es kompilierbar ist.
Bei pair handelt es sich um einen generischen Typ der in etwa dem C++-pair entspricht.
Die lapidare Fehlermeldung lautet "generic array creation".
Allerdings weis ich nicht was der Compiler mir sagen will.
Darf man mit generics keine arrays erstellen ?pair<String,String> VisibleColumns[]={ new pair<String,String>("Verkaufsbezeichnung",null), new pair<String,String>("ccm",null), new pair<String,String>("kw",null), new pair<String,String>("ps",null), new pair<String,String>("radstand1","Radstand"), new pair<String,String>("Nutzlast",null), new pair<String,String>("aufbau_art","Aufbau") , new pair<String,String>("gesgew","Gesamtgew.") };
-
Die Elemente eines Arrays dürfen nicht generisch sein. Generics werden beim kompilieren gelöscht. Zur Laufzeit würde da "? VisibleColumns[] = new ?..." stehen, und ein ? kann man natürlich nicht sauber initialisieren.
Verwende doch eine ArrayList, die erlaubt sowas.
List<pair<x,y>> list = new ArrayList<pair<x,y>>(); list.add( new pair<x,y>( ... ));
[Edit]
Oder eine (Hash/Tree)Map<String,String>, die erlaubt Schlüssel-Werte-Paare. Das scheinst du hier sowieso irgendwie nachbilden zu wollen?
-
Merci für deine Antwort.
Habe das Ganze nun etwas anders gelöst.// ColumnDesc konkretisiert einfach pair<String,String> // und hat keine weitere Aufgabe // warum hat Java kein typedef ??? public class ColumnDesc extends pair<String,String> { public ColumnDesc(String first,String second) { super(first,second) ; } } ColumnDesc [] VisibleColumns= { new ColumnDesc("Verkaufsbezeichnung",null), new ColumnDesc("ccm",null), new ColumnDesc("kw",null), new ColumnDesc("ps",null), new ColumnDesc("radstand1","Radstand"), new ColumnDesc("Nutzlast",null), new ColumnDesc("aufbau_art","Aufbau") , new ColumnDesc("gesgew","Gesamtgew.") };