我正在清理一些代码,然后在com.example.StringHelper上发生了包含6或7个public static方法的情况(例如concatStrings(String...),但是没有成员字段。有很多类将这个类作为子类,以便他们可以调用concatStrings(str1, str2)而不用像这样的类作为前缀:StringHelper.concatStrings(str1, str2)
我不希望他们仅仅因为这个原因而将其子类化,所以我折断了很多。在删除extends StringHelper之后,我将以下静态导入粘贴到对其进行子类化的任何文件的顶部:

import static com.example.StringHelper.*;

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

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

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

最佳答案

这样做:

  • 突出显示concatStrings()的一个调用。确保在突出显示中包含括号。选择“重构/提取方法”,将其命名为foo。确保检查“用方法替换其他47条出现的语句”
  • 在新的foo方法中,添加“StringHelper”。调用concatStrings
  • 的前缀
  • 删除导入的静态
  • 进行重构/内联以消除foo,并将您的静态调用以及它们闪亮的新前缀放回它们所属的位置。
  • 10-08 13:41