今天遇到一个问题出了空指针异常
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
Enumeration<String> initParameterNames =getInitParameterNames();
while(initParameterNames.hasMoreElements()) {
String s = initParameterNames.nextElement();
String initParameter = getInitParameter(s);
System.out.println(s);
}
}
这里会出现空指针,因为这个service()是被定义在Servlet接口中,一开始会最先定义执行
getInitParameterNames()是被定义在GenericServlet类中,初始化比service()晚
因此在service()中调用getInitParameterNames()会出现空指针异常,service()执行时
getInitParameterNames()还没有被加载
特此记录一下,在遇到空指针时不仅要考虑对象有没有被创建,还要考虑方法的加载顺序问题