私は正常に動作する再帰関数を持っています。問題は、行数が膨大な場合、stackoverflow エラーが発生することです。おそらくforループを使用して、反復的に入れたいと思います。それを行うにはいくつかの助けが必要です。
private TreeSet validate(int curLine, TreeSet errorSet) {
int increment = 0;
int nextLine = 0;
if (curLine == lines.length || errorSet.size() != 0) {
return errorSet;
} else {
String line = lines[curLine];
//validation starts. After validation, line is incremented as per the requirements
increment = 1 //As per requirement. Depends on validation results of the line
if (increment > 0) {
try{
Thread.currentThread().sleep(100);
}catch(Exception ex){
System.out.println(ex);
}
nextLine = (curLine + increment);
validate(nextLine, errorSet);
}
}
return errorSet;
}
メソッドのポスターの説明:
メソッドはテキスト行を検証します。これらの行には、行が有効な場合にスキップする必要がある行の量の指示があります。そのため、行が有効な場合、インクリメントを使用して多くの行がスキップされます。行が有効でない場合、インクリメントは 0 になります。