首页 > 解决方案 > 创建最终调用指定方法的 java 方法列表

问题描述

我的任务是查找大型 Java 应用程序中的所有方法,这些方法最终调用需要重构的特定方法。

澄清一下,如果目标方法是“fixme”,并且“fixme”被“a”、“b”和“c”调用,但“a”被“d”和“e”调用;“b”被“d”、“f”、“g”、“h”、“i”调用;“c”被“j”和“k”调用。然后“d”被...调用,等等。所以我们有

k calls c calls fixme
g calls b calls fixme

等等。

这些调用“链”的深度可能非常深,并且有几十个直接调用“fixme”,因此手动解决方案需要一段时间。这不会是唯一的重构任务。

所以 - 我正在寻找一种工具或策略,可以在我懒洋洋地观看时完成这项工作。

我知道诸如 Eclipse 之类的 IDE 可以让您找到对方法的引用,但这些IDE 一次只能使用一种方法。使用跟踪消息执行代码需要完整的代码覆盖,这是不可行的(也不可靠,因为我可能会错过一个)。我真的在寻找某种具有这种功能的静态代码分析器。

标签: javastatic-code-analysis

解决方案


Eclipse 可以做到这一点。在 Eclipse 调用视图中(当光标位于方法上时,CTRL+ALT+H)您可以展开每个节点,以查看完整的调用堆栈。

全部展开后,右键单击顶部节点并选择“复制展开的层次结构”。

此解决方案的唯一问题是我找不到自动扩展它的方法,因此您必须为每个呼叫单击一次。


推荐阅读