gpt4 book ai didi

java - 研究 Java 项目中的资源上下文

转载 作者:行者123 更新时间:2023-12-02 07:55:47 27 4
gpt4 key购买 nike

当我研究我没有编写的复杂 Java 代码时,我会定期在记事本中写下一些我对给定问题感兴趣的资源的调用堆栈。这些资源通常是方法或常量。

这是一个例子:

CONSTANT_NAME
com.company.common.context.business.Context.methodName1()
com.company.domain.web.controller.subdomain1.BusinessController.handleRequest(HttpServletRequest, HttpServletResponse)
com.company.domain.web.controller.subdomain2.BusinessController.handleRequest(HttpServletRequest, HttpServletResponse)
com.company.domain.web.controller.subdomain3.BusinessController.handleRequest(HttpServletRequest, HttpServletResponse)
com.company.common.context.business.Context.methodName2()
com.company.domain.web.controller.subdomain1.BusinessController.handleRequest(HttpServletRequest, HttpServletResponse)
com.company.domain.web.controller.subdomain3.BusinessController.handleRequest(HttpServletRequest, HttpServletResponse)
com.company.domain.web.controller.subdomain2.BusinessController.handleRequest(HttpServletRequest, HttpServletResponse)
com.company.common.context.business.Context.methodName3(Long, boolean)
com.company.domain.web.controller.services.ClassName.onSubmit(HttpServletRequest, HttpServletResponse, Object, BindException)

为此,我在 Eclipse 中右键单击常量/方法,然后选择“引用”、“工作区”(快捷键 CTRL+Shift+G)。在“搜索”选项卡中,我右键单击结果并选择“复制限定名称”。然后,我用合适的表格将其复制到记事本中(第一个变量/方法没有表格,每个调用级别有一个附加表格)。如果一个方法被 2 段代码调用,则为 2 个调用方法的完全限定名称添加相同的列表。结果看起来有点像 java 堆栈跟踪。

我为什么要这么做?因为我认为它提供了有关某些资源的大量信息,并允许了解它们在哪个执行上下文中使用。当然,这不适用于配置资源(例如 xml 配置文件)。

对于大型程序,这种操作可能会变得很麻烦。

如果我在 Eclipse 中使用 Debug模式,当断点被击中时,我可以得到一个有趣的堆栈跟踪,但这只是针对单个案例,当我研究代码时我想要更多的“抽象”。

你知道是否有一些工具可以为我做这样的工作吗?

谢谢!

EDIT : The best way I found to do it is :

  1. make an "open call hierarchy" on a constant/method/variable.
  2. expand all items by using the keyboard arrows in the "Call Hierarchy" view
  3. right-click on the root item and choose "Copy Expanded Hierarchy".

You then have call stacks you can study in notepad

最佳答案

我不确定我是否正确理解了您的问题,但是“开放调用层次结构”(Ctrl+Alt+H) 不符合您的要求吗?

关于java - 研究 Java 项目中的资源上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9656467/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com