Methoden übergeben?



  • Hi

    ich habe einige EventListener geschrieben die von weiteren Klassen genutzt werden sollen. Und zwar soll das in etwas so aussehen.

    Dem Object A wird ein EventListerner getClickEvent zugeordnet. Wenn ein bestimmtes EReignis ausgelöst wird soll eine MemberFunktion aus Klasse A aufgerufen werden. Wie gebe ich diese Methode dem EventListener mit sodass dieser weiß welche Methode aus Klasse A aufgerufen werden soll?

    d.h. ich möchte dem Listener nicht nur eine Referenz auf das Object sondern eine Referenz auf eine Methode des Objects mitgeben. Geht das irgendwie?



  • Also ich weis nicht ob man Referenzen auf Methoden übergeben kann, aber kannst du nicht einfach ein paar Interfaces erstellen? Dann deklariert halt jedes Interface nur eine Methode und daran kann dann der Listener erkennen, was er aufrufen muss.



  • Der Vorschlag wäre auch ein wenig Java-konformer würde ich sagen 🙂 Sicher wäre es mit einigem Aufwand mittels Reflection möglich einen solchen Listener zu schreiben, der einen String bekommt und anhand des Objekt-Typs sich die Methode dann holen kann aber das wäre dann arg proprietär. Was würde geschehen, wenn eine Methode von einem Drittnutzer (der deine Objektklasse als Basis genommen und diese Methoden nicht implementiert hat) diesen Mechanismus dann aushebelt? Jo, man würde sich dann natürlch ein Interface für die Klasse schreiben und sagen "ok, wenn ihr das überschreiben wollt dann aber mit folgenden Einschränkungen" wobei wir dann wieder beim Ausgangspunkt wären: "Warum nicht gleich ein Interface implementieren und den Listener auf das Interface hin ausrichten?"



  • Ich hatte vor ev mehrere Methoden zu schreiben und den Listener dann entscheiden zu lassen welche Methode aufgerufen werden soll. Ich werde aber wie Ihr vorgeschlagen habt eine Methode per Interface implementieren und daran die ganze Arbeit verrichten..


Anmelden zum Antworten