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/

10-10 21:48