仅在 Intelij-Idea 中查找指定类的方法用法

Cha*_*nil 12 java intellij-idea

我正在使用 Intelijidea,但在查找方法用法时遇到问题。

假设我有接口 Worker。

public interface Worker {

    void startWork();
    void endWork();
}
Run Code Online (Sandbox Code Playgroud)

我有两个实现。

public class Develper implements Worker {
    @Override
    public void startWork() {
        System.out.println("Developer Start Working");
    }

    @Override
    public void endWork() {

    }
}

public class Qa implements Worker {
    @Override
    public void startWork() {
        System.out.println("QA start Work");
    }

    @Override
    public void endWork() {

    }
}
Run Code Online (Sandbox Code Playgroud)

我打开 Developer 类并尝试查找 startWork 的用法。我只想查看 Developer.startWork 实现方法的使用情况。

但是当我找到用法时,它同时显示了 Developer 和 Qa startWork 方法的用法。在查找 Developer.startWork 用法时如何避免 Qa.startWork 方法的使用。

请指教。

小智 8

使用Ctrl+ Shift+ Alt+ F7(Mac 的?+ ?+ ?+ F7)应该会显示 Jim Hawkins 回答的提示。

请参阅:https : //www.jetbrains.com/help/idea/find-usages-method-options.html

当您使用此对话框 Ctrl+Shift+Alt+F7 搜索方法实现的用法时,IntelliJ IDEA 将询问您是否要搜索基本方法。对于任何其他查找用法操作,例如 Alt+F7 或 Ctrl+Alt+F7,基本方法将自动包含在搜索结果中。


Jim*_*ins 4

我正在使用 IntelliJ IDEA 15.0.1 。

我认为您在使用“查找用法”功能时看到的内容取决于上下文。

如果将光标放在方法名称上Developer.startWork并调用find usages,您应该会看到一个小对话框。系统会询问您“您想查找基本方法的用法吗?” 。

如果您说“否”,并且在源代码中您仅通过基类或接口(Worker.start()在您的示例中)调用该方法,则 IDEA 不会向您显示任何命中。没错。

如果您通过调用重写的方法Developer.startWork(),并在对话框中按“否”,那么您将看到具体实现的用法。

更新: 在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述