为什么ServletContext.addListener使用泛型类型?

时间:2015-12-13 10:05:38

标签: java java-ee servlet-3.0 generic-programming

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);

1 个答案:

答案 0 :(得分:2)

我想那是因为EventListener只是一个标记界面 - 它没有任何方法,所以让void addListener(EventListener listener);是无意义的代码 - 喜欢&#34;给我一些没有我可以打电话的方法&#34;。

将此声明为<T extends EventListener> void addListener(T t);对于实施者来说很清楚,更多,而不仅仅是EventListener