cub*_*buk 2 java equals nullpointerexception
我对以下语法有一个奇怪的问题:
以下代码块不会抛出空指针异常
Map<String, String> requestHeaderMap = FacesContext.getCurrentInstance().getExternalContext().getRequestHeaderMap();
if(!"partial/ajax".equals(requestHeaderMap.get("faces-request")))
{
System.out.println("This works");
}
Run Code Online (Sandbox Code Playgroud)
但是这个抛出空指针异常:
FacesContext.getCurrentInstance().getExternalContext().getRequestHeaderMap().get("faces-request").equals("partial/ajax")
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚这里有什么不对.除了可读性之外,我没有看到两个电话之间有任何区别.
FacesContext.getCurrentInstance().getExternalContext().getRequestHeaderMap().get("faces-request")一片空白.你的版本是有效的,因为你有等于逆转,这两个操作归结为:
null.equals(object)
Run Code Online (Sandbox Code Playgroud)
要么
object.equals(null)
Run Code Online (Sandbox Code Playgroud)
第一个抛出a NullPointerException,第二个抛出虚假.