Hallo Leute,
ich versuche gerade einen eigenen Eventhandler und Eventrouter zu schreiben.
Es gibt verschiedenen Eventklassen, die alle NetworkEvent implementieren.
Meine Idee ist jetzt, dass ich einen Eventhandler schreibe und der eine beliebige Funktion hat, die irgendein Subklasse von NetworkEvent bekommt.
Dann kann man den Eventhandler beim Eventrouter regisrtieren. Der jetzt eine Liste führt, für welches Event er welche Eventhandler aufrufen soll.
Das ist mal so weit die Idee. Scheitern tuts auch nur beim dynamischen Hinzufügen der Eventhandler im Router. Das hier ist mein versuch:
Die Zeile hier ist das Problemkind:
Hat irgendjemand eine Idee, wie man das sinnvoll löst ?
Grüße xaszy
ich versuche gerade einen eigenen Eventhandler und Eventrouter zu schreiben.
Es gibt verschiedenen Eventklassen, die alle NetworkEvent implementieren.
Meine Idee ist jetzt, dass ich einen Eventhandler schreibe und der eine beliebige Funktion hat, die irgendein Subklasse von NetworkEvent bekommt.
Dann kann man den Eventhandler beim Eventrouter regisrtieren. Der jetzt eine Liste führt, für welches Event er welche Eventhandler aufrufen soll.
Das ist mal so weit die Idee. Scheitern tuts auch nur beim dynamischen Hinzufügen der Eventhandler im Router. Das hier ist mein versuch:
Java:
public class EventRouter {
private Map<Class<? extends NetworkEvent>,Collection< ? extends EventHandler>> routes;
public int register(final EventHandler handler ){
int methodsFound = 0;
for(Method method : handler.getClass().getDeclaredMethods()){
if (method.getParameterTypes().length == 1){
if(NetworkEvent.class.isAssignableFrom(method.getParameterTypes()[0])){
routes.put((<? extends NetworkEvent>)method.getParameterTypes()[0].getClass(), handler);
}
}
}
return methodsFound;
}
}
Die Zeile hier ist das Problemkind:
Java:
routes.put((<? extends NetworkEvent>)method.getParameterTypes()[0].getClass(), handler);
Hat irgendjemand eine Idee, wie man das sinnvoll löst ?
Grüße xaszy