419

反正有没有让 Eclipse 自动查找静态导入?例如,现在我终于升级到 Junit 4,我希望能够编写:

assertEquals(expectedValue, actualValue);

点击Ctrl++并让 Eclipse 添加ShiftO

import static org.junit.Assert.assertEquals;

也许我要求太多了。

4

9 回答 9

586

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

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

在我的中,我有以下条目(添加时,使用“新类型”并省略.*):

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

除了第三个之外,所有这些都是静态导入。通过将它们作为收藏夹,如果我键入 " assertT" 并点击Ctrl+Space,Eclipse 会提供assertThat建议,如果我选择它,它将向文件添加正确的静态导入。

于 2008-11-14T17:13:18.473 回答
244

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

于 2008-11-14T05:02:18.747 回答
31

Eclipse 3.4 在 Window->Preferences->Java->Editor->Content Assist 下有一个收藏夹部分

如果您使用org.junit.Assert很多,您可能会发现将其添加到那里有一些价值。

于 2008-11-14T09:25:36.297 回答
22

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

窗口->首选项->Java->编辑器->内容辅助

并选中Use static imports (only 1.5 or higher)复选框。

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

于 2008-11-14T00:54:29.107 回答
10

来自静态导入​​的内容辅助

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

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

在此处输入图像描述

于 2015-03-26T11:09:45.640 回答
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

当您将上面添加为新类型时,它会自动将 .* 添加到包中。

于 2015-08-23T18:56:55.887 回答
5

静态导入快捷键:CTRL + SHIFT + M

于 2019-03-09T12:02:43.813 回答
2

选择常数,输入

Ctrl + 1  (quick fix)

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

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

于 2018-10-12T15:28:44.923 回答
1

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

已实施新的快速修复,允许用户将静态字段访问和静态方法转换为使用静态导入。也可以同时替换所有事件。

更多细节在这里

于 2018-08-31T00:35:00.187 回答