我倾向于使用eclipse的“Open Call Hierarchy”函数来跟踪大型Java项目中方法调用的位置。我对Threads感到恼火,因为调用层次结构将Thread.run()
方法的调用者显示为各种内部Java线程函数,而不是有效导致线程运行的Thread.start()
调用。
有没有办法让Eclipse将Thread.start调用显示为Thread.run()
方法的父级。也许这是一个插件吗?
答案 0 :(得分:0)
如果我理解你的问题:你想找到给定Thread.start()
方法的Runnable.run()
方法的来电者吗?
我发现这对于非常小的,短期运行的匿名Runnables非常有用。
然而,在更一般的情况下,我不确定进一步的实用性:
Thread.run()
方法可能会这样做,但您对Thread.start()
方法的来电者更感兴趣答案 1 :(得分:0)
有趣的问题。
欢迎您查看nWire。它是一种在一个动态视图中探索代码的所有关联的新工具。使用非常方便和简单。它将调用者和实现者(以及所有其他关联)组合在一起。很想得到你的反馈。
答案 2 :(得分:0)
感谢您回复Jamesh。 根据你提出的前两点,你说(在匿名和非匿名的Runnables中)看看Runnable的构造函数的调用层次结构是有用的 - 是的,我同意!这通常是我最终要做的事情。但它通常意味着在两个层次结构之间频繁切换,一次只能显示其中一个层次结构。我想通过保留一个层次结构来避免这种情况。
Runnable构造函数和对run()的调用之间没有直接的调用层次结构,所以在我看来,通过将构造函数添加为run()的“调用者”来扩展调用层次结构是不合适的。但是,调用start()或将线程添加到执行程序(或执行程序中的run()调用)可能适合在调用层次结构中显示。
我真的只是想知道是否存在我无法找到的现有解决方案。我想如果我想要它,我只需要自己尝试一个插件。
我尝试了实现者插件。它很有用,但不适用于这个特殊问题!
我也试过了nWire。它有很多我没有时间去探索的功能,但我找不到办法去做我想要的东西。