Instanzieren einer Klasse über den Klassennamen
-
-
Das macht in der Form keinen Sinn, da du sowieso eine MyClass hast und genau weißt was da kommt.
Meinst du vielleicht, dass der String der Name einer Subklasse von MyClass ist und du quasi "dynamisch" den richtigen (default-) Konstruktor aufrufst? -
Das kannst du mit der Java Reflection API machen. (Refelection-API)http://download.oracle.com/javase/tutorial/reflect/
-
Das kannst du mit der Java Reflection API machen. (Refelection-API)
ok, das is schon einmal ein ganz guter Ratschlag. thx!
Ich hab aber jetzt nicht die Zeit, mich genauer mit der API auseinanderzusetzen.
Wenn jemand ein entsprechendes Code-Snippet posten könnte wäre mir damit geholfen, ansonsten bleibe ich bei dem bisherigen Workarround mit entsprechenden Fall-Unterscheidungen.
-
Du brauchst Class.forName() und Class.newInstance(). Sich damit auseinanderzusetzen sollte drin sein.
-
Der Aufruf wirkt mir etwas widersprüchlich - createNewInstance müsste den Typ MyClass schon kennen, um überhaupt eine Instanz davon als Ergebnis zurück geben zu können. Was man eher machen würde, wäre eine Implementierung eines Interfaces zu instantiieren, z. B. Plugin plugin = createPlugin("PluginImpl").Was genau möchtest du machen? Geht es dir bei der Frage nur um die prinzipielle Machbarkeit, oder hast du ein konkretes Problem, das du so lösen möchtest?
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!