我有一个类文件,当我编译时,它会一直显示特定行中的空指针异常。我处理了如下的空检查。
108 doc = Jsoup.parse(html, brandUrl);
109 Element div = doc.getElementById("eventTTL");
110 String attr = div.attr("eventTTL");
111 Date closingDate = new Date(Long.parseLong(attr));
112 Elements mainForm = doc.select("div#main-form");
113 Elements mainDivs = mainForm.select("DIV");
显示java.lang.NullPointerException 在com.textT.at.Chickyur.main(Chickyur.java:110)
if(div != null)
String attr = div.attr("eventTTL");
Also tried
if(div.attr("eventTTL") != null)
String attr = div.attr("eventTTL");
我仍然不断获得例外。怎么了?有什么想法吗?
答案 0 :(得分:2)
我无法通过上面发布的代码确切地知道您的代码是如何构建的,但这应该可以修复NullPointerException
:
Element div = doc.getElementById("eventTTL");
String attr = "";
if(div != null)
attr = div.attr("eventTTL");
如果您在此之后继续获得例外,我猜这个问题在代码的其他地方,您需要更新您的示例。
答案 1 :(得分:1)
您所做的代码更改将导致编译错误。不会创建任何类文件,因此您可能正在运行旧的损坏的类文件。
您可能希望这样做(扩展if的范围)。
doc = Jsoup.parse(html, brandUrl);
Element div = doc.getElementById("eventTTL");
if(div != null) {
String attr = div.attr("eventTTL");
Date closingDate = new Date(Long.parseLong(attr));
Elements mainForm = doc.select("div#main-form");
Elements mainDivs = mainForm.select("DIV");
...
}
答案 2 :(得分:0)
没有看到你的堆栈跟踪,我只是猜测,但是:
从您说的行是错误,这意味着div
为空,这表示前一行是罪魁祸首,这意味着您的doc
没有带有ID的元素eventTTL
。
尝试确保您的doc
有效,并确实eventTTL
。