Java servlet中设置响应头时出现空指针异常

Java servlet中设置响应头时出现空指针异常,java,servlets,nullpointerexception,Java,Servlets,Nullpointerexception,在servlet中,即使键[i]或值都不为null,也会引发null指针异常。为什么会这样?以下情况之一为真: 响应为空 密钥为空 键[i]为空 异常不会从您发布的行中抛出 完整的堆栈跟踪在这里非常有用。@Jim:堆栈跟踪在NPE中如何有用?只要它指向的第一行的实际代码就足够了。然后,如果引用为空或不为空,您只需检查对引用的所有访问权限(此处使用了点)。你知道,你不能在null上调用方法或访问字段(这会导致NPE)。@BalusC一个公平的警察,我最近一直以这种方式对一行“为什么我得到X异常”的

在servlet中,即使键[i]或值都不为null,也会引发null指针异常。为什么会这样?

以下情况之一为真:

  • 响应为空
  • 密钥为空
  • 键[i]为空
  • 异常不会从您发布的行中抛出

  • 完整的堆栈跟踪在这里非常有用。@Jim:堆栈跟踪在NPE中如何有用?只要它指向的第一行的实际代码就足够了。然后,如果引用为空或不为空,您只需检查对引用的所有访问权限(此处使用了点
    )。你知道,你不能在
    null
    上调用方法或访问字段(这会导致NPE)。@BalusC一个公平的警察,我最近一直以这种方式对一行“为什么我得到X异常”的问题做出反应@达菲莫下面的回答是更好的解决方法。关于#4,错误消息有时似乎来自实际问题之后的线路;事实上,我认为还有一种情况:I是Integer(“int”包装类)类型,I是null。我相信自动“取消装箱”代码将导致NullPointerException。
    response.setHeader(keys[i].toString(),value);