【问题标题】:Eclipse/IntelliJ: static imports of membersEclipse/IntelliJ:成员的静态导入
【发布时间】:2013-03-30 16:21:26
【问题描述】:

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

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

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

Eclipse Optimize Imports to Include Static Imports

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

在 Eclipse 4.2 中,至少它会画红线并向我提出添加导入的建议,但它仍然对“组织导入”触发器没有执行任何操作。

在 IntelliJ 中也是一样,将包和类添加到设置中,修复了 Control+Alt+Space,但它不处理“优化导入”功能。

我简直不敢相信。有人需要处理这个吗?

【问题讨论】:

    标签: eclipse static import intellij-idea member


    【解决方案1】:

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

    使用 IntelliJ 13.1.3,您可以按 Alt-ENTER,然后选择执行静态导入(旧版本可能需要在 Alt-ENTER 之前有一个或多个 CTR-Space。如果您在静态成员上执行此操作,则只有静态成员是静态导入的。如果你在一个类上这样做,你可以静态导入所有东西(例如import static some.package.SomeClass.*)。在后一种情况下,它将删除静态导入前面的类,除非 有名字冲突。

    请注意,即使没有名称冲突,执行 SomeInterface someInstance = getInstance() 之类的操作 - 其中 getInstance() 是静态导入的 - 会让您的同事非常紧张

    【讨论】:

      【解决方案2】:

      请重新阅读您提到的问题。你错过了the answer 提到 Ctrl + Shift + M。 “组织导入”和“添加导入”命令之间存在差异。

      【讨论】:

      • Add import (ctrl+shift+m​​) 替换了这个结构:AnyClass.anyMember 通过添加 import static 到 anyMember 中,但是如果我已经有了 anyMember,它没有帮助,什么也不做。跨度>
      猜你喜欢
      • 2011-05-22
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-15
      相关资源
      最近更新 更多