V
Vayu
Gast
Hiho,
wahrscheinlich funktioniert es nicht, ich hab schon viel rumprobiert, aber es nicht hinbekommen. Und zum suchen fehlen mir vielleicht die richtigen Suchbegriffe.
ich möchte folgendes. Ich habe eine Factory-Methode, in die ich eine Class reingebe und ein neues Objekt dieser Klasse erzeuge. Nun möchte ich, dass der Rückgabewert denselben Typ hat wie der, der als Parameter reingegeben wurde. In etwa so:
Der Aufrufer ruft nun diese Methode auf und gibt MyFactory.class als Parameter in die Methode, die IFactoryType implementiert. Und soll nun auch direkt eine MyFactory zurückbekommen.
Kann man das irgendwie hinkriegen oder muss ich einen IFactoryType zurückgeben und dann casten?
Danke schonmal,
Vayu
wahrscheinlich funktioniert es nicht, ich hab schon viel rumprobiert, aber es nicht hinbekommen. Und zum suchen fehlen mir vielleicht die richtigen Suchbegriffe.
ich möchte folgendes. Ich habe eine Factory-Methode, in die ich eine Class reingebe und ein neues Objekt dieser Klasse erzeuge. Nun möchte ich, dass der Rückgabewert denselben Typ hat wie der, der als Parameter reingegeben wurde. In etwa so:
Java:
public ? getFactory(Class<? extends IFactoryType> type) {
// create the factory and return it
IFactoryType f = m_Factories.get(type);
if (f == null) {
try {
f = type.newInstance();
} catch (InstantiationException e) {}
catch (IllegalAccessException e) {}
m_Factories.put(type, f);
}
return f;
}
Der Aufrufer ruft nun diese Methode auf und gibt MyFactory.class als Parameter in die Methode, die IFactoryType implementiert. Und soll nun auch direkt eine MyFactory zurückbekommen.
Kann man das irgendwie hinkriegen oder muss ich einen IFactoryType zurückgeben und dann casten?
Danke schonmal,
Vayu