在eclipse中内联所有静态导入

时间:2010-11-18 20:51:58

标签: java eclipse refactoring

我正在清理一些代码并发生在包含6或7个com.example.StringHelper方法的public static上(例如concatStrings(String...),但没有成员字段。有许多类继承这个这样他们就可以调用concatStrings(str1, str2),而无需像上面那样为它添加前缀:StringHelper.concatStrings(str1, str2)

我不希望他们因为这个原因而继承类,所以我打破了一堆。在删除extends StringHelper之后,我将以下静态导入粘贴到任何继承它的文件的顶部:

import static com.example.StringHelper.*;

Eclipse将此简化为仅针对所使用方法的特定导入。

问题:有没有一种简单的方法让Eclipse“内联”这些静态导入?我是否可以删除实际的静态导入并为每次调用添加前缀StringHelper.

注意 这是一个简化的人为例子,所以请不要抱怨为什么我们首先需要一个StringHelper。

4 个答案:

答案 0 :(得分:4)

这样做:

  • 突出显示concatStrings()的一次调用。确保在突出显示中包括括号。选择Refactor / Extract Method,将其命名为foo。请务必选中“使用方法替换47次附加语句”
  • 在新的foo方法中,添加“StringHelper”。调用concatStrings的前缀
  • 删除导入静态
  • 执行Refactor / Inline以摆脱foo并将静态调用放回原来的位置,以及闪亮的新前缀。

答案 1 :(得分:1)

不知道是否有自动方式,但我认为它可以以手动方式提供帮助。删除导入,然后单击每行并显示错误。按ctrl-1进行“快速修复”,然后选择前缀包名称的快速修复,而不是添加导入。

答案 2 :(得分:0)

Preferences -> Java -> Code Style -> Organize Imports

在那里,您可以配置将它们分组所需的导入数量。

答案 3 :(得分:0)

偏好设置> Java>代码风格>组织进口:

“。*所需的静态导入数”将此值设置为1。