有没有办法让Eclipse在没有自动完成的情况下添加静态导入?

时间:2011-01-11 20:28:52

标签: eclipse eclipse-jdt

Eclipse可以使用“on-save”操作添加明确的类,但它不会解析静态函数。我并不总是使用自动完成功能,并且返回触发它很麻烦。

e.g。我经常编写像

这样的代码
printDebug("my value", my_obj);

我希望它自动添加

import static util.DebugOut.printDebug;

注意:重申一下,我不是在寻找(a)需要ctrl+space的任何事情,(b)自动导入课程

4 个答案:

答案 0 :(得分:9)

我知道这并不完全符合您的要求,但我还是认为我会发布它。我建议使用Eclipse模板来完成你想要完成的任务。例如,如果我想要使用Math.sin(),就好像它是静态导入的那样,我会使用以下模板:

${:importStatic(java.lang.Math.sin)}sin(${cursor});

对于您,您想要按照以下步骤操作:

  • 转到Windows->偏好设置
  • 在Java->编辑器 - >模板下,点击“新建...”
  • 快速命名模板,例如“printDebug”或“debug”。填写说明
  • 指定下面的模式,然后单击“确定”,“确定”。
  • 要使用,请键入“debug”(或其他名称),然后键入CTRL-Space。

模式:

${:importStatic(util.DebugOut.printDebug)}printDebug(${someString},${someObject});

说明:importStatic变量将添加指定的静态导入(如果可以解析并且不与现有导入冲突)。 someStringsomeObject提示用户(您)使用真实表达式替换这些值,并允许您切换到下一个值。

有了这个,你可能会发现它比最后的自动导入要快得多。

修改

至于您的“实际”问题,您可能会发现以下内容是相关的。它本质上是重复的。

答案 1 :(得分:5)

请参阅Window-> Preferences-> Java-> Editor-> Content Assist-> Favorites。

答案 2 :(得分:2)

您可以切换到其他IDE,例如IDEA,只是工作,或者尝试这样的解决方法:

e.g。我经常编写像

这样的代码
util.DebugOut.printDebug("my value", my_obj);

点光标 printDebug ctrl-shift-m

导入已添加:

import static util.DebugOut.printDebug;

答案 3 :(得分:-1)

请参阅首选项 - > Java->代码样式 - >组织导入。在那里,您可以设置静态导入,以便自动添加import语句