【发布时间】:2011-05-22 04:33:11
【问题描述】:
在 Eclipse 中,我能够注册一组用于静态导入自动完成的类,例如数学。,断言。,EasyMock。*
启用此功能后,我可以点击 ctrl-space assertEquals、pow、createMock 等,这将显示为有效的代码完成。
我很难在 IntelliJ 中找到它,但我确信它一定存在。有人可以帮忙吗?
谢谢!
【问题讨论】:
标签: java intellij-idea
在 Eclipse 中,我能够注册一组用于静态导入自动完成的类,例如数学。,断言。,EasyMock。*
启用此功能后,我可以点击 ctrl-space assertEquals、pow、createMock 等,这将显示为有效的代码完成。
我很难在 IntelliJ 中找到它,但我确信它一定存在。有人可以帮忙吗?
谢谢!
【问题讨论】:
标签: java intellij-idea
只需做一次引用,然后将插入符号放在类名(即 Math)上,按 alt+enter 并选择“为 'java.lang.Math' 添加按需静态导入。Intellij 将添加
import static java.lang.Math.*;
到文件的顶部。
【讨论】:
Settings -> Code Style -> Java -> Imports (tab).
Settings -> Code Style -> Imports
窗格中间是“使用带有 '*' 的导入的包”表。您可以在此处添加一个完全限定类名的条目,并勾选静态框;现在这个类中的所有静态方法都可以自动完成了。
(我不确定静态导入如何与指定包一起使用,因为我从未尝试过,但我不明白为什么它不会。指定超级包并勾选“带有子包" 选项可能会更有趣。)
【讨论】:
*?
Code Style -> Java 下看到它,其中有一个 Imports 选项卡。我现在不记得这是否是它在 v10 中的样子,我的描述是草率的,或者它过去是否略有不同。使用较早版本 IntelliJ 的人,请随时相应地编辑此答案。
.* 的静态导入(替换所有内容,除了会导致名称冲突的地方,非常好)。
org.junit.Assert 添加静态条目似乎不起作用:自动完成asse 将扩展到Assert.assertEquals,而不是assertEquals,在Assert.* 上静态导入
如果您使用的是 IntelliJ 10,请尝试以下操作:
assEq<Ctrl-Alt-Space>
默认情况下,接受来自结果弹出列表的建议将插入 ClassName.methodName() 引用(您可以使用 Alt-Enter 意图将其转换为静态导入)。
您还可以通过在完成菜单中选择“Right”,然后选择“Import Statically”,从完成列表中插入静态导入的方法:
请注意,一旦您从一个类 (Assert.assertSame) 静态导入单个方法,该类的其他静态方法(如 Assert.assertEquals)将包含在“常规”代码完成中(Ctrl-Space) .
【讨论】:
Ctrl+Shift+A找到?
对于 Intellij 12,只需点击 <ctrl + spacebar(twice)>。然后静态导入方法点击<alt + return>。否则只需按 Enter 键将插入方法的完全限定名称。
更新:
有时只使用<alt + return> 也可以。
【讨论】:
在 OS X 中,您需要执行 option + return。
【讨论】:
Alt + Enter 可以解决问题。你必须首先拥有整个表达式,然后在你想要静态导入的方法上点击Alt + Enter。
【讨论】: