gpt4 book ai didi

java - 如何解决 StackOverflow 错误?

转载 作者:行者123 更新时间:2023-12-01 08:57:20 26 4
gpt4 key购买 nike

我编写了提取网页上所有链接的代码。我检查 Arraylist 以防止出现相同的链接。但如果网站上的链接太多,我会收到 stackoverflow 错误。我将链接保留在 Arraylist 中以供以后使用。如何避免此堆栈溢出错误?问题的原因可能是arraylist吗?

StackOverFlow Error

static ArrayList<String> linkleriTut = new ArrayList();    

public void linkleriCek(String url, String taramaTuru) throws IOException{
try {
Document doc = Jsoup.connect(url).get();
Elements linkler = doc.select("a[href]");
for (Element link : linkler) {
if (!linkleriTut.contains(link.attr("abs:href"))) {
linkleriTut.add(link.attr("abs:href"));
}
}
}
}
catch (Exception e) {
}
if (taramaTuru.equals("Detaylı Tarama")) {
while (k < linkleriTut.size()) {
k++;
linkleriCek(linkleriTut.get(k), taramaTuru);
}
}

最佳答案

当 taramaTuru 是 Detaylı Tarama

if (taramaTuru.equals("Detaylı Tarama")) 始终为 true。

因此,对于 linkleriTut 中的每个条目,您再次调用 linkleriCek(linkleriTut.get(k), taramaTuru)

在初始循环之后再次看到(taramaTuru.equals("Detaylı Tarama")) == true,因此你的方法不断地一次又一次地调用自身,这会导致 StackOverFlowError

关于java - 如何解决 StackOverflow 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41960945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com