empire Geschrieben 12. Juni 2002 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
ExAzubi Geschrieben 12. Juni 2002 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
Snowghost Geschrieben 14. Juni 2002 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
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.