Servlet API 3.0 provide the addListener
method for ServletContext
<T extends EventListener> void addListener(T t);
See http://docs.oracle.com/javaee/7/api/javax/servlet/ServletContext.html#addListener-T- .
Why isn't this method defined as:
void addListener(EventListener listener);
I guess that's because EventListener
is a tagging interface only - it doesn't have any methods, so having void addListener(EventListener listener);
would be nonsense code - like "give me something that has no methods I can call".
With declaring this as <T extends EventListener> void addListener(T t);
it's clear to the implementor, that something more than simply an EventListener
is needed here.