【问题标题】:IntelliJ Static Import CompletionIntelliJ 静态导入完成
【发布时间】:2011-05-22 04:33:11
【问题描述】:

在 Eclipse 中,我能够注册一组用于静态导入自动完成的类,例如数学。,断言。,EasyMock。*

启用此功能后,我可以点击 ctrl-space assertEquals、pow、createMock 等,这将显示为有效的代码完成。

我很难在 IntelliJ 中找到它,但我确信它一定存在。有人可以帮忙吗?

谢谢!

【问题讨论】:

    标签: java intellij-idea


    【解决方案1】:

    只需做一次引用,然后将插入符号放在类名(即 Math)上,按 alt+enter 并选择“为 'java.lang.Math' 添加按需静态导入。Intellij 将添加

    import static java.lang.Math.*;
    

    到文件的顶部。

    【讨论】:

    • 但我仍然必须在每个文件中都这样做:(
    【解决方案2】:

    版本 >= 11:

    Settings -> Code Style -> Java -> Imports (tab).

    版本

    Settings -> Code Style -> Imports

    窗格中间是“使用带有 '*' 的导入的包”表。您可以在此处添加一个完全限定类名的条目,并勾选静态框;现在这个类中的所有静态方法都可以自动完成了。

    (我不确定静态导入如何与指定包一起使用,因为我从未尝试过,但我不明白为什么它不会。指定超级包并勾选“带有子包" 选项可能会更有趣。)

    【讨论】:

    • 是否可以将 IntelliJ 配置为仅添加方法的静态导入,而不是 *
    • 在版本 11 中,我在 Code Style -> Java 下看到它,其中有一个 Imports 选项卡。我现在不记得这是否是它在 v10 中的样子,我的描述是草率的,或者它过去是否略有不同。使用较早版本 IntelliJ 的人,请随时相应地编辑此答案。
    • 在版本 13:Ctrl+Space,查看下拉菜单底部的小文本,它告诉您“静态导入 Alt+Enter”。所以组合是 Ctrl+SPACE, Alt+ENTER
    • 在我的版本 13.1.3 中,只需 Alt + ENTER 即可。如果您在课堂上按 Alt+ENTER,则可以选择 .* 的静态导入(替换所有内容,除了会导致名称冲突的地方,非常好)。
    • 在 IntelliJ 2016 中,它是设置 -> 编辑器 -> 代码样式 -> 导入。不幸的是,为org.junit.Assert 添加静态条目似乎不起作用:自动完成asse 将扩展到Assert.assertEquals,而不是assertEquals,在Assert.* 上静态导入
    【解决方案3】:

    如果您使用的是 IntelliJ 10,请尝试以下操作:

    assEq<Ctrl-Alt-Space>
    

    默认情况下,接受来自结果弹出列表的建议将插入 ClassName.methodName() 引用(您可以使用 Alt-Enter 意图将其转换为静态导入)。

    您还可以通过在完成菜单中选择“Right”,然后选择“Import Statically”,从完成列表中插入静态导入的方法:

    请注意,一旦您从一个类 (Assert.assertSame) 静态导入单个方法,该类的其他静态方法(如 Assert.assertEquals)将包含在“常规”代码完成中(Ctrl-Space) .

    【讨论】:

    • 哪一步不起作用?获取 assertEquals() 建议使用 Ctrl-Alt-space,还是选择静态导入选项?
    • 第一步没有用,但你用你的评论给了我解决方案。实际上,您在答案中写了 CTRL+SHIFT+SPACE ,但在评论中写了 CTRL+ALT+SPACE 。最后一个工作正常。
    • 哇。使用 IntelliJ 18 个月,这是我第一次了解这个出色的功能。如何在菜单中或通过Ctrl+Shift+A找到?
    • 由于历史原因,该动作被命名为Class Name Completion
    【解决方案4】:

    对于 Intellij 12,只需点击 &lt;ctrl + spacebar(twice)&gt;。然后静态导入方法点击&lt;alt + return&gt;。否则只需按 Enter 键将插入方法的完全限定名称。

    更新: 有时只使用&lt;alt + return&gt; 也可以。

    【讨论】:

      【解决方案5】:

      在 OS X 中,您需要执行 option + return。

      【讨论】:

        【解决方案6】:

        Alt + Enter 可以解决问题。你必须首先拥有整个表达式,然后在你想要静态导入的方法上点击Alt + Enter

        【讨论】:

        • 有没有办法配置它,使其默认执行此导入,而不必每次都按 Alt+Enter?
        • 很遗憾,我不知道有这样的功能。
        • 这似乎已在 IDEA 2018.1 中停止工作,知道如何找回它
        【解决方案7】:

        现在可以使用静态导入添加实时模板

        您必须在选项中检查静态导入

        @org.junit.Test
        public void should$EXPR$when$CONDITION$() {
            org.junit.Assert.assertThat(null, org.hamcrest.CoreMatchers.is(org.hamcrest.CoreMatchers.nullValue())); 
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-03-30
          • 2015-09-02
          • 1970-01-01
          • 2023-02-15
          • 2017-02-27
          • 1970-01-01
          • 2019-05-05
          相关资源
          最近更新 更多