empire Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 Hi Leuts Follgendes Problem. Ich will aus einer Methode eine andere ausführen lassen. Soweit ja kein Problem. Aber ich will es "dynamisch" machen. So das ich den MethodenNamen als StingWert oder so habe. 1. Klasse main - rufe klasse procStarten auf - führe Methode start aus, übergebe ihr Parameter welche Methode gestartet werden soll 2. Klasse procStarten - führe Methode(stringWert) aus Ich hoffe ihr könnt damit was anfangen bzw ihr versteht was ich meine. empire Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ExAzubi Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 Hi, ich glaube das geht so nicht, da de Compiler ja gar nicht weiß, was er zur Umwandlungszeit compilen soll. Dir bleibt nur die Möglichkeit die möglichen Methoden in einem If else If Block, kanst auc einen Case Block nehmen zu definieren, und mit einer Varaibelen die Aufrufe zu steuern. Hoffe konnte dir helfen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Snowghost Geschrieben 14. Juni 2002 Teilen Geschrieben 14. Juni 2002 Es gibt schon eine Möglichkeit: Du musst dir zuerst alle Methoden deiner Klasse dynamisch in z.B. ein Array laden. Bsp.: Method[] methods = this.getClass().getMethods(); Die Parameter kannst du dir über die Methode getParameterTypes() des Method-Objektes holen. (Die musst du dir für die Methode bspw. in einem zweidimensionalen Array speichern.) Deinen Übergabeparameter (also den Methodennamen) überprüfst du mit den vorhandenen Methoden in dem ersten Array. Über die Methode invoke(.....) (Parameter siehe JavaDoc) kannst du dann die gefundene Methode dynamisch aufrufen. Hoffe es hat ein wenig geholfen ciao Snowghost Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.