G
Gast
Gast
Hallo,
ich habe zwei Klassen die ein Interface implementieren. Beide besitzen genau einen Konstruktor,
der ein String als Parameter annimmt.
Ich möchte jetzt in einer Methode eine dieser Klassen auswählen und zurückgeben lassen können.
Leider kann ich den Rückgabewert der Methode nicht einfach mit Class typisieren. Es geht
höchstens <?> oder <? extends I>. Beides führt aber in der nächsten Methode zu einem
Cast-Fehler.
Diese Methode soll mir dann eine Vector von Instanzen geben.
Hat jemand eine Idee ?
ich habe zwei Klassen die ein Interface implementieren. Beide besitzen genau einen Konstruktor,
der ein String als Parameter annimmt.
Code:
interface I {
...
}
class A implements I {
...
}
class B implements I {
...
}
Ich möchte jetzt in einer Methode eine dieser Klassen auswählen und zurückgeben lassen können.
Leider kann ich den Rückgabewert der Methode nicht einfach mit Class typisieren. Es geht
höchstens <?> oder <? extends I>. Beides führt aber in der nächsten Methode zu einem
Cast-Fehler.
Code:
class ... {
public Class<?> getMyClass(int i) {
switch (i) {
case 0: return A.class;
default: return B.class;
}
}
}
Code:
public Vector[I] getI() {
Vector[I] v = new Vector[I]();
v.add( getMyClass(0).getConstructor(String.class).newInstance("irgendwas") );
v.add( getMyClass(1).getConstructor(String.class).newInstance("nochwas") );
}
Hat jemand eine Idee ?