Servlet API 3.0为addListener
提供ServletContext
方法
<T extends EventListener> void addListener(T t);
参见http://docs.oracle.com/javaee/7/api/javax/servlet/ServletContext.html#addListener-T-。
为什么不将此方法定义为:
void addListener(EventListener listener);
最佳答案
我猜那是因为EventListener
仅是一个标记接口-它没有任何方法,因此拥有void addListener(EventListener listener);
将会是胡说八道的代码-例如“给我一些我无法调用的方法”。
通过将其声明为<T extends EventListener> void addListener(T t);
,实现者很清楚,这里需要的不仅仅是简单的EventListener
。
关于java - 为什么ServletContext.addListener使用泛型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34249935/