我需要编写一个使用递归的类可以扩展的父 Java 类。每当调用堆栈发生变化时(你进入一个方法,暂时离开它去另一个方法调用,或者你已经完成了方法),父类将能够意识到然后打印出来。我希望它在控制台上打印,但每次也要清除控制台,以便它水平显示堆栈,这样您就可以看到每个堆栈的高度,以查看弹出的内容和弹出的内容......如果基线也打印出来达到递归函数。
第一的。如何使用 StackTraceElements 和 Thread 类自动检测堆栈何时弹出或推送元素而不手动调用它?
其次,我将如何进行清算?
例如,如果我有代码:
public class recursion(int i)
{
private static void recursion(int i)
{
if(i < 10)
System.out.println('A');
else
{
recursion(i / 10 );
System.out.println('B');
}
}
public static void main(String[] argv)
{
recursion(102);
}
}
进入main()时需要打印栈,从main()进入recursion(102)时,从recursion(102)进入recursion(102 / 10),即recursion(10)时,进入recursion(10 / 10),即recursion(10)中的recursion(1)。当到达基线递归(1)时打印出一条消息。然后打印出函数递归(10),递归(102)和main()的反向重新访问堆栈。最后打印出我们正在退出 main()。