IntelliJ静态导入完成

Scr*_*ers 71 java intellij-idea

在Eclipse中,我能够为静态导入自动完成注册一组类,例如Math.,断言.,EasyMock.*

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

我很难在IntelliJ中找到它,但我相信它必须存在.有人可以帮忙吗?

谢谢!

And*_*yle 61

版本> = 11:

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

版本<11

Settings -> Code Style -> Imports

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

(我不确定静态导入如何用于指定包,因为我从未尝试过,但我不明白为什么它不会.指定一个超级包并勾选"with subpackages"选项可能更有趣.)

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

Pak*_*kka 37

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

assEq<Ctrl-Alt-Space>
Run Code Online (Sandbox Code Playgroud)

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

您还可以通过在完成菜单中选择"右"并选择"静态导入",从完成列表中插入静态导入的方法:

在此输入图像描述

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

  • 使用Idea 13.1对我不起作用 (2认同)

nuc*_*tus 37

Alt + Enter会做的.您必须首先拥有整个表达式,然后点击Alt + Enter要静态导入的方法.

静态导入IntelliJ

  • 有没有这个配置,使得它这样做进口默认情况下,无需打Alt + Enter键每次的方法吗? (6认同)
  • 这似乎已停止在IDEA 2018.1中工作,任何想法如何取回它 (2认同)

loy*_*own 33

对于Intellij 12来说就是命中<ctrl + spacebar(twice)>.然后导入静态命中的方法<alt + return>.否则只需按Enter键将插入方法的完全限定名称.

更新: 有时也只是使用<alt + return>作品.


小智 9

在OS X中,您需要执行选项+返回.


And*_*and 6

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

import static java.lang.Math.*;
Run Code Online (Sandbox Code Playgroud)

到文件的顶部.

  • 但我仍然必须在每个文件中这样做:( (7认同)