I have this interface:
public interface EventHandler<T extends Event> {
void handle(T event);
}
And this class implementing it:
public class MyEventHandler implements EventHandler<MyEvent> {
@Override
public void handle(MyEvent event) {
//do something
}
}
Given:
Class myEventHandlerClass = getClazz();
In this clase, T
parameter is MyEvent
, that is a concrete implementation of Event
. How can obtain this using reflection?
I want something like this:
Class myEventHandlerClass = getClazz();
Method handleMethod = myEventhandlerClass.getDeclaredMethod("handle");
Class<?>[] params = method.getParameterTypes();
Class<?> eventConcreteType = params[0];
But myEventhandlerClass.getDeclaredMethod("handle");
throws NoSuchMethodException
, since I haven't specified the parameter type, because I just know that is a concrete implementation of Event
but I don't know which.
Aucun commentaire:
Enregistrer un commentaire