Events Reflektieren

Status
Nicht offen für weitere Antworten.

Z-80

Mitglied
Hallo,

ich wurde gerne über Reflektion hausbekommen welche Events eine Klasse anbietet. Wie geht das? Leider kann ich alles mit der Reflektion herausbekommen (Methoden, Annotations usw.), nur bei Events habe ich nirgends was gefunden.
 

Mag1c

Top Contributor
Hi,

du könntest nach Methoden suchen, die dem Schema "addXxxListener()" folgen. Letztendlich bedeutet ja "Event anbieten" nichts anderes, als daß ich einen Listener anhängen kann, der dann ebensolche Events bekommt.

Gruß
Mag1c
 

Z-80

Mitglied
Ich muß auch ehrlich zugeben das ich in Java noch nicht so ganz fit bin. Eigentlich bin ich ja C# Programmierer (bitte jetzt nicht steinigen) und da kann man über objekt.getType().getEvents() alle Events einer Klasse bekommen (entspricht in etwa objekt.getClass().XXX in Java). Nun hat aber C# ja auch ein völlig anderes Eventkonzept. Eigentlich geht es auch darum ein C# Programm nach Java zu portieren.

Wenn ich das so mache wie du es vorschlägst (ist ja im Prinzip schon möglich), kann ich aber nicht wirklich sicher sein, das es ein Event ist. Es wird zwar zu 99% eine EventListenerList-Methode sein, aber 100% sicher kann ich da ja nicht sein.
 

Mag1c

Top Contributor
Yep,

das ist soweit alles richtig. Es gibt in der Sprache Java an sich kein eigenes Konzept für Events. Es gibt eben nur die übliche Anwendung des Patterns, indem per addXxxListener(...) ein Listener registriert werden kann, der dann per Methoden und Event-Objekt benachrichtigt wird. Mit dieser Annahme wirst du wohl leben müssen, eine andere Möglichkeit sehe ich nicht.

Kannst du kurz erläutern, wofür sowas benötigt wird ?

Gruß
Mag1c
 

Z-80

Mitglied
Im Diplom eines Komilitonen wurde eine XAML/MyXAML ähnliches System entwickelt. Das soll jetzt wenn möglich nach Java portiert werden. Und da dort Klassen über XML organisiert werden und Properties und Events mittels XML-Attributen beschrieben werden ist es eigentlich notwendig Events über Reflektion handeln zu können.
 

Bleiglanz

Gesperrter Benutzer
im .NET Universum werden die Events automatisch vom Compiler in die Klassen hineinkompiliert (schau dir das Zeug mal mit einem Disasembler an, da sind die AddListenerMethoden auch vorhanden)

Wenn ich das so mache wie du es vorschlägst (ist ja im Prinzip schon möglich), kann ich aber nicht wirklich sicher sein, das es ein Event ist. Es wird zwar zu 99% eine EventListenerList-Methode sein, aber 100% sicher kann ich da ja nicht sein.
das ist in Java gesehen sprachlicher Unsinn: weil "Events" nicht zu Sprache gehören - sondern zur Klassenbibliothek - kannst du dir auch nicht zu x% sicher sein, dass irgendwas ein "Event" ist

eine vorhandene addXXXListener Methode könnte ja gar nichts machen, oder eine Rakete abfeuern oder den Parameter zur Empfängerliste dazutun, das weisst du von aussen nicht

IMHO musst du damit leben, dass dieser Teil in Java ausprogrammiert werden muss (während man das in .NET mit "Deklarationen" erledigen kann)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
F Event Handling Eingabestift events entgegennehmen Allgemeine Java-Themen 0
M Events gehen verloren Allgemeine Java-Themen 7
R Events "verteilen" Allgemeine Java-Themen 2
U Events Allgemeine Java-Themen 3
SuperSeppel13 MouseMotion Events unabhängig vom Cursor Allgemeine Java-Themen 7
M Asynchron Events verschicken... Allgemeine Java-Themen 2
S Eigene Events feuern Allgemeine Java-Themen 3
0x7F800000 Wovon eigene Events für spezialisierte JComponents ableiten? Allgemeine Java-Themen 2
O Auf alle Events reagieren Allgemeine Java-Themen 3
J OpenOffice.org Events in eigene Anwendung umleiten Allgemeine Java-Themen 4
R Events von Klasse 1 in Klasse 2 abrufen Allgemeine Java-Themen 2
N Events in Java? Allgemeine Java-Themen 6
MQue Auslösen eines Events beim Drücken eines Buttons Allgemeine Java-Themen 12
M Events im Quellcode auslösen Allgemeine Java-Themen 4
E Events von inneren Klasse abfragen Allgemeine Java-Themen 7
N Action Events Allgemeine Java-Themen 12
G BestPractice Events bündeln Allgemeine Java-Themen 2
G Events auslösen Allgemeine Java-Themen 3
G Applets und eine Welle von Repain-Events Allgemeine Java-Themen 9
K Wenn events auftritt fireActionPerformed Allgemeine Java-Themen 6
G Events und Automatisch generierte Unterklassen! Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben