[Erledigt] Problem mit Generics und Methodenparameter

Ich habe ein eigenes Model geschrieben und möchte dafür die javax.swing.EventListenerList für die registrierten Listener benutzen.
Ansich recht einfach: es ist nur der Instanz von EventListenerList eine Referenz auf einen Listener hinzuzufügen/löschen.

Die Methoden dafür:
add(Class<T> t, T l) und
remove(Class<T> t, T l)

http://java.sun.com/javase/6/docs/api/javax/swing/event/EventListenerList.html

Ich habe aber ein Problem bei der Übergabe des ersten Parameters.
Es wird dort ein Class-Typ verlangt. Nur, wie sollte das aussehen?

Ohne mir die API genau durchgelesen zu haben, aber spontan:

ell.add(ActionListener.class, new ActionListener() {
	public void actionPerformed(ActionEvent evt) {
		
	}
});```

So stehts auch in der API (Beispielcode) und so habe ich es auch gemacht.
Aber der Compiler meldet:

add(java.lang.Class, T) in javax.swing.EventListenerList cannot be applied to (java.lang.Class<mypackage.MyListener>, mypackage.MyListener)

MyListener entspricht hier einem Interface, welches von allen Listenern implementiert werden muss.

Also was läuft hier schief?

OK, ich habe das Problem nach weiterem Studium der API-Doc gefunden.
Ein Listener, der zur EventListenerList hizugefügt werden können soll, muss das Interface java.util.EventListener implementieren.

Das Interface EventListener ist nur ein Markerinterface, also gänzlich ohne Methoden. Ich habe mein Listener-Interface nun von EventListener erben lassen - nun geht’s. :slight_smile:

Danke für deine Bemühungen, Null.