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

Pau*_*kin 405 java eclipse keyboard-shortcuts

无论如何让Eclipse自动查找静态导入?例如,现在我终于升级到了Junit 4,我希望能够写:

assertEquals(expectedValue, actualValue);
Run Code Online (Sandbox Code Playgroud)

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

import static org.junit.Assert.assertEquals;
Run Code Online (Sandbox Code Playgroud)

也许我问的太多了.

Joe*_*son 566

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

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

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

org.hamcrest.Matchers.*
org.hamcrest.CoreMatchers.*
org.junit.*
org.junit.Assert.*
org.junit.Assume.*
org.junit.matchers.JUnitMatchers.*
Run Code Online (Sandbox Code Playgroud)

除了三分之外的所有都是静态进口.通过将它们作为收藏夹,如果我输入" assertT"并点击Ctrl+Space,Eclipse会提供assertThat一个建议,如果我选择它,它会将正确的静态导入添加到文件中.

  • 啊 - 诀窍是简单地通过`New Type ...添加`org.junit.Assert`,然后隐含`.*`. (25认同)
  • 是否正确自动导入`Ctrl + Shift + o`不会添加必要的导入,实际上你必须将光标悬停并选择`添加静态导入......选项?遗憾的是,通常的自动导入选择列表对话框不显示. (4认同)
  • @ J.Stoever - 如果你正在使用JUnit 4,你会想要使用Hamcrest形式:`assertThat(value,is(expected));` (2认同)
  • 我用 Eclipse Kepler 尝试了这个,但没有用。我也重新启动了 Eclipse。没有自动完成,在悬停或按 CTRL + 1 时没有静态导入选择。有人经历过吗? (2认同)
  • Intellij Idea 支持开箱即用。羞耻日食没有。 (2认同)

Dav*_* L. 241

如果你突出显示方法Assert.assertEquals(val1, val2)并点击Ctrl+ Shift+ M(添加导入),它会将它添加为静态导入,至少在Eclipse 3.4中.

  • 在Eclipse Juno中,如果我只突出显示方法,然后使用CTRL + SHIFT + M.,我只能设法使它工作. (15认同)
  • mac上的cmd-shift-M (11认同)
  • 在开普勒(4.3)上对我不起作用. (6认同)
  • 在Luna上为我工作.确保光标位于期间的右侧.希望我多年前了解到这一点! (5认同)
  • 这应该是赢家! (4认同)

Bil*_*ell 31

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

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


Pau*_*kin 21

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

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

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

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


Sum*_*ngh 10

内容辅助进行静态导入

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

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

在此输入图像描述


Nee*_*raj 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
Run Code Online (Sandbox Code Playgroud)

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


Mic*_*ner 5

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