关于java:Eclipse Optimize Imports包含静态导入

Eclipse Optimize Imports to Include Static Imports

有没有办法让Eclipse自动查找静态导入?例如,现在我终于升级到了JUnit4,我想能够写:

1
assertEquals(expectedValue, actualValue);

点击ctrl+shift+o,让Eclipse添加:

1
import static org.junit.Assert.assertEquals;

也许我要求太多了。


我正在使用Eclipse Europa,它也有最喜欢的首选项部分:

Window > Preferences > Java > Editor > Content Assist > Favorites

在我的系统中,我有以下条目(添加时,使用"新类型"并省略EDOCX1[2]):

1
2
3
4
5
6
org.hamcrest.Matchers.*
org.hamcrest.CoreMatchers.*
org.junit.*
org.junit.Assert.*
org.junit.Assume.*
org.junit.matchers.JUnitMatchers.*

除了三分之一,其余都是静态导入。如果我输入"assertT"并点击ctrl+spacebkbd,Eclipse会提供assertThat作为建议,如果我选择它,它会将适当的静态导入添加到文件中。


如果突出显示方法Assert.assertEquals(val1, val2)并点击ctrl+shift+m(添加导入),它将作为静态导入添加,至少在Eclipse 3.4中是这样。


Eclipse 3.4在Window >首选项> java>编辑器>内容帮助下有一个收藏夹部分

如果你经常使用org.junit.Assert,你可能会发现在那里添加它有一些价值。


不完全是我想要的,但我找到了一个解决办法。在Eclipse 3.4(Ganymede)中,转到

Window->Preferences->Java->Editor->Content Assist

选中"使用静态导入"复选框(仅1.5或更高)。

这不会在优化导入时引入导入,但如果在行上执行快速修复(ctrl+1),则可以选择添加足够好的静态导入。


从内容辅助静态导入

To get content assist proposals for static members configure your list of favorite static members on the Opens the Favorites preference page Java > Editor > Content Assist > Favorites preference page.
For example, if you have added java.util.Arrays.* or org.junit.Assert.* to this list, then all static methods of this type matching the completion prefix will be added to the proposals list.

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

enter image description here


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

1
2
3
4
5
6
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

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


在Eclipse4.9中,可以使用快速修复静态导入现有调用。

A new quick fix has been implemented that allows the user to convert static field accesses and static methods to use a static import. It's also possible to replace all occurrences at the same time.

此处提供更多详细信息


静态导入的快捷方式:Ctrl+Shift+M


选择常量,类型

1
Ctrl + 1  (quick fix)

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

即使不是错误,"快速修复"也有选项。