2010-04-16 68 views
0

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

+2

http://stackoverflow.com/questions/421280/in-java-how-do-i-find-the-caller-of-a-method-using-stacktrace-or-reflection – 2010-04-16 05:37:12

+1

@Michael - 我不这么认为。我认为他想要一个电话TREE ... – 2010-04-16 07:07:12

回答

3

建议的解决方案是使用Thread.currentThread().getStackTrace()为了获得当前跟踪呼叫者。

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

无论如何,您可以获取Eclipse或NetBeans源代码并查看它是如何在其中实现的。

+0

+1 - 我认为这是他问的...和我同意这会很难实现,而且运行起来很昂贵。 – 2010-04-16 07:08:47

0

您可以使用StackTrace对象。

但是这对我来说看起来很脆弱。最好避免这种逻辑...为什么不把呼叫者作为参数传递给方法?

+0

我需要它的一些检查purpose.How我可以使用StackTrace对象的TIS ??(没有得到你) – Steven 2010-04-16 05:50:07

0

在位于层次结构根部的方法中抛出异常。然后你可以捕捉到异常和printStackTrace()

我相信会有比这更清洁的解决方案。但是这也会起作用。

1
StackTraceElement[] stackTrace = new Throwable().getStackTrace(); 
相关问题