Eclipse中的默认导入

har*_*rel 15 java eclipse

有没有办法在Eclipse中自定义默认导入?

例如,如果我默认打开一个新的JUnit测试类,我会得到这些导入:

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

我想得到什么:

import static org.junit.Assert.*;
import org.junit.Test;
import static org.hamcrest.Matchers.*;
Run Code Online (Sandbox Code Playgroud)

K E*_*son 12

不幸的是,在重构和创建新实体时,Eclipse完全缺乏代码生成的可定制性.

您可能希望查看Eclipse Optimize Imports以包含静态导入,以获取有关如何使内容辅助在预定义类中查找静态方法的信息.那可能就是你真正想要的.在接受的答案中,Joey Gibson写道,您可以添加org.hamcrest.MatchersWindow»Preferences»Java»Editor»Content Assist»Favorites.


静态导入Hamcrest方法的特定问题的另一个解决方案是配置名为hamcrest 的代码模板.这样你就可以简单地输入ham并跟随ctrl+ space来获得顶部的导入.

模板看起来应该是这样的

${staticImport:importStatic('org.hamcrest.Matchers.*')}${cursor}
Run Code Online (Sandbox Code Playgroud)

更方便的黑客是将此模板添加到现有的test代码模板中,该模板生成新的测试方法.如果您将此模板更改为:

@${testType:newType(org.junit.Test)}
public void ${testName}() throws Exception {
    ${staticImport1:importStatic('org.hamcrest.Matchers.*')}
    ${staticImport2:importStatic('org.junit.Assert.*')}${cursor}
}
Run Code Online (Sandbox Code Playgroud)

并且每次使用新的测试方法时都要使用它,您将永远不必关心再次手动添加hamcrest导入.

图像显示您配置它的位置: hamcrest代码模板


man*_*uti 7

我能找到的最接近的偏好是Window - > Preferences - > Java - > Code Templates下的首选项.展开" 代码"部分,然后选择" 新建Java文件"选项以查看新创建的Java文件的模式.然后,您可以单击" 编辑"以添加导入,例如:

${filecomment}
${package_declaration}

import org.hamcrest.*;

${typecomment}
${type_declaration}
Run Code Online (Sandbox Code Playgroud)

在所有情况下,您仍然需要编写使用该org.hamcrest包的代码.或者,只需在添加使用该包的代码后按Ctrl+ Shift+ 组织导入O.


小智 5

我建议你添加org.hamcrest.Matchers.*到"收藏夹"(窗口 - >首选项 - > Java - >编辑器 - >内容辅助 - >收藏夹).

这样,即使导入丢失,内容辅助也会提出静态成员,并在使用该成员时添加相应的导入.这意味着您可以键入要使用的方法/字段,并让内容辅助自动添加导入.