我正在使用Eclipse,并希望提取两种方法的调用层次结构,以查看它们的流是否相交。我目前正在做的是将一个方法调用层次结构复制到文本编辑器,并在第一个调用层次结构中搜索另一个方法调用层次结构。
有没有办法保存调用层次结构,然后复制粘贴,以便以后可以重新加载到搜索窗口中?
有没有其他方法可以检查现有Java代码的调用层次结构交集? (其他工具可能?)
答案 0 :(得分:0)
我将你的问题分成两个不同的任务
如果您可以更改您发现的代码,则可以使用new Throwable().printStackTrace(out)
之类的代码在每个有趣的方法的开头获取堆栈跟踪。将其保存到专用文件并稍后处理。
如果您不能(或不想)更改正在发现的代码,您可以轻松地使用AspectJ实现相同的代码。建议:使用动态编织,更容易,更灵活。
现在第二个任务:搜索十字路口。不幸的是,我不知道标准工具,但似乎实现这一点并不困难。实施将取决于您的要求。例如,如果你只需要在2个堆栈跟踪中找到第一个常用方法,那么任务就很简单了。但是,如果您需要一个真正的“差异”功能,您可以使用一个可用的java差异库。如果亲自发现http://badiff.org/wiki/Badiff是一个最灵活,设计最好的java差异库。