如何知道当前的递归水平?

时间:2014-02-09 16:34:44

标签: java recursion

在调试递归方法时,我想知道它的级别。给我一些建议,无论是代码还是IDE工具(最好是Eclipse)。

4 个答案:

答案 0 :(得分:3)

Eclipse的调试视图已经显示了线程的堆栈。看看那个。

答案 1 :(得分:0)

使方法采用一个额外的整数参数,从1开始,每当你更深一层时递增它。

答案 2 :(得分:0)

保持计数器,它的值将显示深度级别。像这样:

int counter = 0;
void call() {
    counter++;
    // recursive call
    call()
    counter--;

}

答案 3 :(得分:0)

@Kayaman是对的(+1) 但是,如果递归非常深,手动计算深度可能不方便。您可以改用Expressions视图。写那里的表达式new Throwable().getStackTrace().length。这将为您提供递归深度+ n,其中n是从main到递归开始的方法调用次数。