Eclipse优化导入以包括静态导入


411

无论如何,让Eclipse自动寻找静态导入?例如,既然我终于升级到Junit 4,我希望能够编写:

assertEquals(expectedValue, actualValue);

点击Ctrl+ Shift+ O并让Eclipse添加:

import static org.junit.Assert.assertEquals;

也许我问的太多了。

Answers:


572

我正在使用Eclipse Europa,它也有“收藏夹”首选项部分:

窗口>首选项> Java>编辑器>内容辅助>收藏夹

在我的数据库中,我有以下条目(添加时,请使用“ New Type”并省略.*):

org.hamcrest.Matchers.*
org.hamcrest.CoreMatchers.*
org.junit.*
org.junit.Assert.*
org.junit.Assume.*
org.junit.matchers.JUnitMatchers.*

除第三者外,其余均为静态进口。通过将其作为收藏夹,如果我键入“ assertT”并按Ctrl+Space,则Eclipse会assertThat提出建议,如果选择它,它将为文件添加适当的静态导入。


26
啊-诀窍是简单地添加org.junit.Assertvia New Type....*然后将其隐式添加。
KomodoDave 2012年

5
自动导入Ctrl+Shift+o不会添加必要的导入是否正确,实际上您必须将光标悬停并选择Add static import..option是正确的吗?很遗憾,通常的自动导入选择列表对话框没有显示。
KomodoDave 2012年

2
@ J.Stoever-如果您使用的是JUnit 4,则需要使用Hamcrest表单:assertThat(value, is(expected));
David Harkness,

2
我用Eclipse Kepler尝试了一下,但无济于事。我也重新启动了Eclipse。漫游或按CTRL + 1时,没有自动补全,没有静态导入选择。有人经历过吗?
Magnilex 2014年

2
Intellij Idea支持此功能。羞耻的日食没有。
Neeraj

242

如果突出显示方法Assert.assertEquals(val1, val2)和命中Ctrl+ Shift+ M(添加导入),将其添加为静态导入,至少在Eclipse 3.4。


11
Mac上的cmd-shift-M
Joshua Goldberg

15
在Eclipse朱诺我只设法使它工作,如果我只突出的方法,之后使用CTRL + SHIFT + M.
ktulinho

5
这应该是赢家!
克林特·伊斯特伍德

对于静态字段AX-> X(高度AX和Ctrl + Shift + M)也适用。谢谢。正是我想要的。
Eyad Ebrahim

5
在Luna上为我工作。确保光标位于句点的右侧。希望我几年前了解到!
HDave 2014年

31

Eclipse 3.4在“窗口”->“首选项”->“ Java”->“编辑器”->“内容辅助”下具有“收藏夹”部分

如果使用org.junit.Assert很多,可能会发现在其中添加一些价值。


21

并不是我想要的,但是我找到了一种解决方法。在Eclipse 3.4(Ganymede)中,转到

窗口->首选项-> Java->编辑器-> Content Assist

并选中使用静态导入(仅1.5或更高版本)复选框

这不会在“优化导入”中引入导入,但是如果您在该行上执行快速修复(CTRL+ 1),它将为您提供添加足够好的静态导入的选项。


10

内容辅助静态导入

要获得有关静态成员的内容协助建议,请在“打开收藏夹”首选项页面Java > Editor > Content Assist > Favorites首选项页面上配置您的“收藏夹”静态成员列表。
例如,如果您已添加java.util.Arrays.*或添加org.junit.Assert.*到此列表,则所有与完成前缀匹配的此类静态方法都将添加到投标列表中。

打开 Window » Preferences » Java » Editor » Content Assist » Favorites

在此处输入图片说明


5

对于SpringFramework测试,我建议也添加以下内容

org.springframework.test.web.servlet.request.MockMvcRequestBuilders
org.springframework.test.web.servlet.request.MockMvcResponseBuilders
org.springframework.test.web.servlet.result.MockMvcResultHandlers
org.springframework.test.web.servlet.result.MockMvcResultMatchers
org.springframework.test.web.servlet.setup.MockMvcBuilders
org.mockito.Mockito

当您将上述内容添加为新类型时,它会自动在包中添加。*。



2

选择常数,输入

Ctrl + 1  (quick fix)

选择“转换为静态导入”。从下拉列表中。

“快速修复”具有选项,即使这不是错误。


1

在Eclipse 4.9中,您可以使用快速修复程序静态导入现有的调用。

已经实施了一个新的快速修复程序,该修补程序允许用户转换静态字段访问和静态方法以使用静态导入。也可以同时替换所有出现的事件。

在这里更多细节

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.