我正在开发一个需要从文档中删除元素的应用程序。
for(Element d : doc.getAllElements()){
if(condition){
d.getAllElements().remove();
}
}
在这样做时,我不断得到
Exception in thread "main" java.lang.IllegalArgumentException: Object must not be null
到目前为止,我已经检查了各种 null 条件,例如 if(d != null) 等,但似乎没有一个有效。你能建议什么应该是解决方案吗?
更新:假设我有两个循环,我在满足条件时删除元素。下面的代码只是示例,请不要建议解决方法,例如在第一个条件下中断循环等,我需要在逻辑层面上理解它。
for(Element e: doc.getAllElements()){
if(condition1 == true)
{
e.getAllElements().remove();
}
if(condition2 == true){
e.getAllElements().remove();
}
}
如果两个条件都满足,则在第一个循环中删除元素,当遇到第二个条件时,它会抛出非法异常。我试图评估问题,发现 JSoup 在内部检查元素是否不为空,如果是,则抛出异常。考虑场景:
if(e != null) // e is an Element.
在上面的空检查中,JSoup 检查 e 的存在,在这种情况下它是空的,因此在进入下一个单词之前是异常的!=空。我检查了文档,发现有一个方法存在 Validation.notNull(Element),但它返回 void。是否有可能从中获得布尔返回值?还有什么解决办法?