Hallo,
ich habe eine Klassen erstellt die Objekte eines bestimmten (aber festen) Typs aufnehmen soll, die mindestens Comparable sein müssen. Ich dachte mir, dass das Klassen-Template eigentlich so aussehen müsste.
Als nächstes wollte ich eine Instanz erstellen wobei erst zur Laufzeit bekannt ist welchen Typ T nun hat. Das heißt es müssen Wildcards zum Einsatz kommen.
Bis zu dem Punkt an dem ich Objekte zu a hinzügen möchte gibt der Code Assistent von Eclipse keine Fehlermeldungen aus. Aber beim Hinzufügen gibt es die Methoden-Signatur in der Klasse angeblich nicht. Wie schreibt man das richtig hin? Ich schätze mal das Problem liegt bei den Wildcards oder? Ich muss wahrscheinlich dem Compiler irgendwie mitteilen, dass die beiden Fragezeichen vom selben Typ sein sollen oder?
Danke im Voraus
ich habe eine Klassen erstellt die Objekte eines bestimmten (aber festen) Typs aufnehmen soll, die mindestens Comparable sein müssen. Ich dachte mir, dass das Klassen-Template eigentlich so aussehen müsste.
Code:
public class Klasse<T extends Comparable<T>> {
...
public void add(T a) {
...
}
}
Als nächstes wollte ich eine Instanz erstellen wobei erst zur Laufzeit bekannt ist welchen Typ T nun hat. Das heißt es müssen Wildcards zum Einsatz kommen.
Code:
public void test() {
Klasse<? extends Comparable<?>> a;
if (Bedingung1)
a = new Klasse<Integer>();
else
a = new Klasse<Float>();
if (Bedingung1)
a.add(new Integer(0));
else
a.add(new Float(0));
}
Bis zu dem Punkt an dem ich Objekte zu a hinzügen möchte gibt der Code Assistent von Eclipse keine Fehlermeldungen aus. Aber beim Hinzufügen gibt es die Methoden-Signatur in der Klasse angeblich nicht. Wie schreibt man das richtig hin? Ich schätze mal das Problem liegt bei den Wildcards oder? Ich muss wahrscheinlich dem Compiler irgendwie mitteilen, dass die beiden Fragezeichen vom selben Typ sein sollen oder?
Danke im Voraus