出于好奇,我查看了 HttpServlet 类的代码,发现它的父类“GenericServlet”定义了在接口“ServletConfig”中声明的方法“getServletName()”。但是,如果 ServletConfig 的对象“sc”不为空,则 GenericServlet 的 getServletName() 方法会调用“sc.getServletName()”。我无法理解这个东西是如何工作的,因为当我在 eclipse 中按 ctrl+click 来查看方法的实现时,它似乎在调用自己!HttpServlet 类中也没有被覆盖的实现!
这是 GenericServlet 实现的快照:
public String getServletName() {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}
return sc.getServletName();
}
任何人都可以告诉我这个..