나는 자바를 배우려고 노력하고 있으며, 염두에두고있는 기본 프로그램을 위해 jaunt와 함께 변수를 가지고 놀고 있습니다. 내 목표는 기본 방법을 사용하여 다른 방법으로 수집 한 데이터를 인쇄하는 것입니다. 나는 그 대답이 눈부시게 분명하고 자바 문서를 읽었지만 여전히 작동하지 않는 이유에 대해 혼란 스럽다. 프로그램을 실행하면 원하는 데이터를 인쇄하지 않고 실행되는 것 같습니다. 또한 spfivehundred 메소드에 sysout 문을 추가하면 spfivehundred 메소드가 무한 반복되고 기본 메소드에서 나오기를 원하는 데이터를 인쇄하는 것으로 나타납니다.어떻게 제대로 변수를 반환합니까
import com.jaunt.*;
import com.jaunt.component.*;
public class mainthread {
public static void main(String[] args) {
spfivehundred();
double spfivehundreded = spfivehundred();
System.out.println(spfivehundreded);
}
public static double spfivehundred() {
UserAgent userAgent = new UserAgent();
try {
userAgent.visit("http://www.investing.com/indices/us-spx-500");
String spfivehundredget = userAgent.doc.findFirst(
"<span class=\"arial_26 inlineblock pid-166-last\">")
.getText();
double spfivehundred = Double.parseDouble(spfivehundredget.replace(
",", ""));
} catch (JauntException e) {
System.err.println(e);
}
return spfivehundred();
}
}
기술적으로 합법적 인 경우에도 이름 ('spfivehundred')을 다시 사용하지 않으면 도움이됩니다. return 문이 함수를 다시 호출하고 있습니다. – chrylis
'return spfivehundred();'는 재귀 호출을 수행합니다. 즉, 무한정 호출합니다. 그것은'return spfivehundred;이어야합니다''try'' catch' 블록 전에'spfivehundred'를 선언해야합니다. –