Eclipse / IntelliJ:静态导入成员

时间:2013-04-08 14:20:21

标签: eclipse static import intellij-idea member

我正在重构影响我的代码的很多部分(巨大的),我最终需要组织我的项目的导入,以便它可以在类中添加静态导入成员..

在花了一整天的时间试图弄清楚如何做到这一点后,我找不到方法。它在IntelliJ或Eclipse中都不起作用。

在Eclipse中,我已将其添加到“收藏夹”设置中,就像这里解释的那样:

Eclipse Optimize Imports to Include Static Imports

但是,它仅适用于Control +空间,而不适用于Control + Shift + O(重新排列导入)

在Eclipse 4.2中,至少它会绘制红色线并向我提出添加导入的建议,但它仍然在“组织导入”触发器上无效。

在IntelliJ中它是相同的,将包和类添加到设置中,修复了Control + Alt + Space,但它没有处理“优化导入”功能。

我无法相信这一点。有人不得不处理这件事吗?

2 个答案:

答案 0 :(得分:3)

你不想只对所有事情进行import static;如果类包含过于笼统的类成员,那么import static只会使您的代码不可读。除此之外,可能存在名称冲突(例如,两个具有static getInstance()方法的类很常见。

使用IntelliJ 13.1.3,你可以按Alt-ENTER,然后选择进行静态导入(旧版本可能需要在Alt-ENTER之前有一个或多个CTR空间。如果你在静态成员上执行此操作,那么只有静态成员是静态导入的。如果你在一个类上执行它,你可以静态导入所有内容(例如import static some.package.SomeClass.*)。在后一种情况下,它将删除静态导入前面的类,除非< / em>有一个名字冲突。

请注意,即使没有名称冲突,执行SomeInterface someInstance = getInstance() - getInstance()静态导入的内容 - 也会让同事非常紧张

答案 1 :(得分:0)

请重新阅读您提到的问题。你错过了the answer提到 Ctrl + Shift + M 。命令“Organize Imports”和“Add import”之间存在差异。