堆栈追踪:
java.lang.NullPointerException
at TestSlot.isInternetExplorerAvailable(TestSlot.java:274)
at WebProxyHtmlRendererBeta.getSingleSlotHtml(WebProxyHtmlRendererBeta.java:168)
// the rest is irrelevant
TestSlot#isInternetExplorerAvailable()
public Boolean isInternetExplorerAvailable() {
if (currentSession.get("isInternetExplorerAvailable") != null) // line 274
return (Boolean) currentSession.get("isInternetExplorerAvailable");
return false;
}
currentSession.get(String key)
是一个从HashMap<String,Object>
... getSingleSlotHtml()
else if (browserName.contains(BrowserType.IE) || browserName.contains(BrowserType.IEXPLORE))
if (!s.isInternetExplorerAvailable()) { // line 168
htmlClass += "browserNotAvailable ";
imgSrc = imgSrc.split(".png")[0].concat("_unavailable.png");
title = "browser not available";
} else { htmlClass += "browserAvailable "; }
值得怀疑的是,我是否使用此SCCEE测试了相同类型的逻辑:
public class Main {
public static void main(String[] args) {
Map<String, Object> settings = new HashMap<String, Object>();
settings.put("something", true);
if (settings.get("something_else") != null)
System.out.println("it's not null");
else
System.out.println("it's null");
}
}
它推出了"it's null"
,这意味着我可以使用!=
进行空检查。有什么想法为什么这对TestSlot#isInternetExplorerAvailable
方法不起作用?
答案 0 :(得分:5)
行的唯一方法
if (currentSession.get("isInternetExplorerAvailable") != null) // line 274
如果NullPointerException
为空,则抛出currentSession
。首先添加一个检查:
if (currentSession != null && currentSession.get("isInternetExplorerAvailable") != null) // line 274
答案 1 :(得分:1)
您当前的会话&#39;第274行中的变量为null。 当您尝试拨打“获取”时会出现例外情况。在null。
尝试
if(comparing 'currentSession != null && currentSession.get("isInternetExplorerAvailable") != null) { ......}