如何确定特定Java方法是否将另一个特定Java方法调用多个堆栈级别?

时间:2014-07-17 19:40:21

标签: java methods

所以,让我们说我有方法A,我想知道如果开始方法A可能会导致方法D被踢掉。很容易确定A是否直接调用D,但有没有办法确定D是否在堆栈中进一步调用(例如:A调用B,B调用C,C调用D)?

基本上我希望用特定方法对所有方法调用进行递归搜索,以找到另一个特定的方法调用。对此的任何帮助将不胜感激。

此致 布兰登

2 个答案:

答案 0 :(得分:0)

如果您有IDE(如Eclipse或Netbeans),可以在方法D中放置一个断点,然后在Debug视图中查看该点的堆栈。

例如,在Eclipse中,会有一个看起来像这样的面板:

http://help.eclipse.org/juno/topic/org.eclipse.jdt.doc.user/reference/views/debug/images/ref-debug_view.PNG

来自Eclipse Help

的图片

您可以在堆栈中看到已调用main()

在您的示例中,它可能如下所示:

ClassZ.D() line: P
ClassY.C() line: O
ClassX.B() line: N
ClassW.A() line: M

答案 1 :(得分:0)

Found the solution!显然我不是唯一一个提出这个问题的人,我只是没有说出同样的话。这是最好的解决方案(它确实使用了Eclipse中的调用层次结构,感谢Raedwald!)