我使用java反射从类中获取方法(加载了这些类)。现在我想要获取这些方法的调用层次结构。如何在eclipse IDE中使用调用层次结构选项那?任何例子或链接????获取使用反射方法的调用层次结构
回答
建议的解决方案是使用Thread.currentThread().getStackTrace()
为了获得当前跟踪呼叫者。
但是,您希望获取此信息不是针对当前正在执行的方法,而是针对任何类中的任何方法。这不容易做到。我认为你必须使用字节码实用程序检查类路径中的所有类并匹配调用指令。有些东西你会花费太多时间,而且我非常肯定它不是必需的,除非你正在开发一个IDE。
无论如何,您可以获取Eclipse或NetBeans源代码并查看它是如何在其中实现的。
+1 - 我认为这是他问的...和我同意这会很难实现,而且运行起来很昂贵。 – 2010-04-16 07:08:47
您可以使用StackTrace对象。
但是这对我来说看起来很脆弱。最好避免这种逻辑...为什么不把呼叫者作为参数传递给方法?
我需要它的一些检查purpose.How我可以使用StackTrace对象的TIS ??(没有得到你) – Steven 2010-04-16 05:50:07
在位于层次结构根部的方法中抛出异常。然后你可以捕捉到异常和printStackTrace()
。
我相信会有比这更清洁的解决方案。但是这也会起作用。
StackTraceElement[] stackTrace = new Throwable().getStackTrace();
- 1. Ruby方法调用层次结构
- 2. 使用IMetaDataImport获取基类层次结构方法EnumMethods
- 3. vs2010。调用层次结构。有没有办法一次为所有方法生成调用层次结构?
- 4. 为动态调用的方法生成调用层次结构
- 5. 使用反射的递归方法调用由于层次结构中的抽象类而失败
- 6. PHP调用层次结构
- 7. 无法获取父类调用子类方法 - 使用反射
- 8. c#使用反射从底层类型获取方法名称
- 9. 获取C#代码逻辑的图形表示 - 方法调用层次结构
- 10. 使用反射获取OrderBy方法
- 11. 使用反射获取方法描述
- 12. 使用反射获取类方法
- 13. 使用Java反射类获取方法
- 14. Automapper:映射层次结构
- 15. 获取用于按层次结构表结构的DAO
- 16. 使用反射的Java调用方法
- 17. 使用反射的调用方法
- 18. 使用反射的调用方法
- 19. 在类层次结构中的方法调用练习
- 20. 如何浏览Xcode 4中的方法调用层次结构?
- 21. 在层次结构外调用对象的超类方法
- 22. 如何使用反射来重构按名称获取方法?
- 23. 构造函数调用层次结构
- 24. 反射方法调用构造函数多次
- 25. findContours使用层次结构
- 26. 从字节代码获取调用层次结构(在Eclipse中)
- 27. 如何在Fortran中获取子例程调用层次结构?
- 28. 在Eclipse中获取调用层次结构CDT
- 29. 如何简化导致链式方法调用的层次结构类结构?
- 30. 字段的IntelliJ调用层次结构
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
@Michael - 我不这么认为。我认为他想要一个电话TREE ... – 2010-04-16 07:07:12