Frage zu Generics
-
Hallo Leute,
ich habe eine Grundlegende Frage zu den Generics.
Ich habe im Programm irgendwo eine Klasse wie folgt:class Blub<X> { // ... }
nun will ich irgendwo im Inneren ein Konstrukt wie folgt machen:
X varname = new X();
Dies geht jedoch nicht Wie soll ich es sonst anstellen? Noch interessanter:
X array [] = new X[size];
... geht natürlich auch nicht Wie kann ich dieses Problem lösen?
Für Eure Antworten wäre ich sehr dankbar.
Gruß
-
So etwas geht in Java leider nicht. Du kannst dir eine Factory-Klasse schreiben nach dem Motto Factory<T> und die deiner eigenen Klasse übergeben.
Deine Factory-Klasse musst du dann z.B. von Factory<Foo> ableiten und die kann die Foos erzeugen. Es suckt, aber viel besser geht es nicht.
-
Optimizer schrieb:
Deine Factory-Klasse musst du dann z.B. von Factory<Foo> ableiten und die kann die Foos erzeugen. Es suckt, aber viel besser geht es nicht.
Aber hat die Factory-Klasse dann nicht genau das gleiche Problem?
-
Deshalb musst du von der generischen Factory-Klasse eine nicht-generische ableiten. Die generische dient nur alles Schnittstelle für die Methode die die Factory braucht, damit man ihr irgendeine Factory<T> geben kann und sie nicht die konkrete Implementierung kennen muss.
Wäre unpraktisch, wenn du eine generische lib schreibst, du kannst nämlich als Autor der lib nicht für alle Typen Factory-Klassen definieren, aber ne generische abstrakte Basisklasse.
-
Ah, ok, verstehe.