61

我正在使用 Intellij IDEA 14 Ultimate。当我搜索查找用法时,在查找视图中有类似的信息

在项目文件中搜索用法”并且不返回任何结果。范围是“整个项目”。

我也有 IntelliJ 14 社区版。当它尝试在社区版中查找用法时,它可以工作。

你有什么主意吗?

4

7 回答 7

88

我遇到了完全相同的问题,所以对于寻找快速答案的人,请尝试

File->Invalidate Caches / Restart

感谢用户@yole 和他的评论。

于 2015-05-20T16:53:05.327 回答
17

如果到那时仍未解决,File -> Invalidate Caches / Restart 请确保您的“src”文件夹在项目结构中标记为“Sources”。

于 2017-08-29T12:27:19.917 回答
2

If File -> Invalidate Caches / Restart is not working -> close the project, remove it from recent projects and then delete the .idea folder then open the project again.

于 2021-07-29T05:30:41.713 回答
1

还有其他情况“查找用法”功能不起作用。我可以举例说明一个非常简单的案例。

提供者.java:

public class Provider {
    private static final Provider instance = new Provider();
    public static Provider getInstance() { return instance; }
    public Integer getID() { return 0; }
}

用户.java:

public class User {
    private final Integer pID;
    public User() { pID = Provider.getInstance().getID(); }
}

如果单击 Provider.java 中的 getID() 方法并调用“Find Usages”,它很容易在 User.java 中找到调用。但是,如果您重命名或删除 Provider.java 中的 getInstance() 方法,那么它将不再在 User.java 中找到 getID() 调用。

我认为发生这种情况是因为 Provider.getInstance().getID() 行标记为红色(编译错误),并且“查找用法”功能不会将此失败代码视为对 getID() 的有效调用。这意味着,至少有一些编译错误会影响“查找用法”的结果

我很好奇,在https://youtrack.jetbrains.com/issues?q=find%20usages上查看与此功能相关的错误列表,在那里我看到了其他案例并得出了我的结论。总而言之,如果您不想记住它工作的所有条件并希望始终进行完整搜索,我建议使用 grep 始终查找所有内容。

于 2020-01-05T15:48:17.477 回答
1

在 Windows 机器上的 PhpStorm 版本 2019.1 中,如果您按住AltGr键并将鼠标悬停在某个函数上,则会出现弹出窗口“显示方法的用法 ...”,但它具有误导性,因为没有从其他文件中找到对该方法的调用。

显示用法的正确方法是按住Ctrl按钮并单击方法名称。

于 2020-01-16T16:23:58.547 回答
0

您也可以暂时强制“坏”源文件夹(例如:.../tmp),然后切换回正确的源文件夹(例如:src/main/java)。这与其他帖子中解释的缓存清理相结合,为我的一位同事解决了这个问题。

您可以通过右键单击文件夹来声明/取消声明源文件夹,然后“将目录标记为...”。

于 2021-10-25T13:01:48.233 回答
0

有时代码格式结构存在问题。

试试这个 - 按ctrl+ alt+ shift+l

  1. 选择选定的文本

  2. 代码清理

那么你的问题就解决了

于 2020-06-16T10:04:28.277 回答