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
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
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden