【问题标题】:How do I find usages of method implementation in eclipse?如何在 eclipse 中找到方法实现的用法?
【发布时间】:2018-06-12 11:51:08
【问题描述】:

当我想在 java 中找到普通方法的用法时,它相当简单直接 CTRL-SHIFT-G

但是,如果这个方法有一个 super 定义或实现,那么 eclipse 将向我展示层次结构类型中所有类型的用法。

例如,如果我在我的类上有一个 toString() 方法,我只想找到这个类的这个 toString() 被调用的确切位置,而不是 eclipse 给我每个项目中的单个祖先 toString(即 Object.toString())。

如何只找到我的班级的特定用途?而不是像 Object.toString() 这样的父类的用法?

【问题讨论】:

  • 请你释放这个赏金。

标签: java eclipse


【解决方案1】:

Alt + ctrl + h 应该准确地告诉您,您正在寻找什么。

更新了我工作区的屏幕截图,因为有些人在关注它时遇到了问题:

【讨论】:

  • 它仍然在 Eclipse Neon 中找到 Object 的 toString() 的出现
  • 它不应该,我目前正在使用 eclipse mars,它完美地工作/工作(与旧版本)。
  • 这是一个正确的答案:在 Eclipse 中右键单击然后选择 Open Call Hierarchy... 赞成 :)
  • @HalayemAnis 但是如果在特定方法上使用它作为new MyClass("aa","").toString(); 它将返回所有Object.toString() 方法用法
  • @ user7294900 我只是尝试按照您的建议进行复制,但对我来说效果很好。我正在使用 jdk8、eclipse mars2、java 透视图。我在 new MyClass().toString() 上选择了“toString()”,它给了我一个结果。确保您没有覆盖任何默认键绑定。
【解决方案2】:

感谢@manouti answer, 要在使用覆盖方法时显示,只需按照以下步骤操作:

通过Java搜索方法为com.package.MyObject.toString()

然后在搜索结果屏幕中单击向左的右箭头并检查References to Overridden

【讨论】:

  • 对我不起作用。我在我的 Test.class 中只调用了一个 toString(),如果我对 toString() 进行搜索,然后对“覆盖的引用”进行搜索,我仍然会从其他不相关的类中对其他 toString() 方法进行数十次点击。
  • @OliverWatkins 在 Java 中的搜索限制:参考?
【解决方案3】:

在遇到与 cmets 中的许多其他问题相同的问题后(​​Eclipse 显示对 Object.toString() 的引用),我找到了一种似乎可以正常工作的方法:

从您的自定义类转到大纲,右键单击您的 toString() 实现和引用 -> 项目。这仅显示对所述实现的引用。

【讨论】:

    猜你喜欢
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 2016-07-10
    • 2021-04-14
    • 1970-01-01
    • 2018-10-06
    相关资源
    最近更新 更多