我使用java反射从类中获取方法(加载那些类)。现在我想得到那些方法的调用层次结构。如何在eclipse IDE中使用调用层次结构选项?任何示例或链接? ??
答案 0 :(得分:3)
建议的解决方案是使用Thread.currentThread().getStackTrace()
来获取当前的呼叫者踪迹。
但是,您希望获取的信息不是针对当前正在执行的方法,而是针对任何类的任何方法。这不容易做到。我认为你必须使用字节码实用程序检查类路径上的所有类,并匹配调用指令。除非你正在开发一个IDE,否则你会花太多时间,而且我很确定它不需要。
无论如何,您可以获取Eclipse或NetBeans源代码,并了解它是如何在那里实现的。
答案 1 :(得分:2)
StackTraceElement[] stackTrace = new Throwable().getStackTrace();
答案 2 :(得分:0)
您可以使用StackTrace对象。
但这对我来说看起来非常脆弱。最好避免这种逻辑......为什么不将调用者作为参数传递给方法?
答案 3 :(得分:0)
在层次结构根目录的方法中抛出异常。然后你可以捕获异常和printStackTrace()
。
我相信会有更清洁的解决方案。但这也会奏效。