使用反射获取方法的调用层次结构

时间:2010-04-16 05:35:13

标签: java eclipse reflection

我使用java反射从类中获取方法(加载那些类)。现在我想得到那些方法的调用层次结构。如何在eclipse IDE中使用调用层次结构选项?任何示例或链接? ??

4 个答案:

答案 0 :(得分:3)

建议的解决方案是使用Thread.currentThread().getStackTrace()来获取当前的呼叫者踪迹。

但是,您希望获取的信息不是针对当前正在执行的方法,而是针对任何类的任何方法。这不容易做到。我认为你必须使用字节码实用程序检查类路径上的所有类,并匹配调用指令。除非你正在开发一个IDE,否则你会花太多时间,而且我很确定它不需要。

无论如何,您可以获取Eclipse或NetBeans源代码,并了解它是如何在那里实现的。

答案 1 :(得分:2)

StackTraceElement[] stackTrace = new Throwable().getStackTrace();

答案 2 :(得分:0)

您可以使用StackTrace对象。

但这对我来说看起来非常脆弱。最好避免这种逻辑......为什么不将调用者作为参数传递给方法?

答案 3 :(得分:0)

在层次结构根目录的方法中抛出异常。然后你可以捕获异常和printStackTrace()

我相信会有更清洁的解决方案。但这也会奏效。