内联 eclipse 中的所有静态导入

发布于 2024-10-03 05:28:37 字数 682 浏览 2 评论 0原文

我正在清理一些代码,偶然发现 com.example.StringHelper 包含 6 或 7 个 public static 方法(例如 concatStrings(String...)< /code>,但没有成员字段。有许多类对此类进行子类化,以便它们可以调用 concatStrings(str1, str2) 而无需在其前面添加类前缀,如下所示:StringHelper. concatStrings(str1, str2).

我不希望他们仅仅因为这个原因而子类化一个类,所以我在删除 < 后将以下静态导入粘贴到任何子类化文件的顶部。 code>extends StringHelper:

import static com.example.StringHelper.*;

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

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

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

I was cleaning up some code and happened upon com.example.StringHelper that contained 6 or 7 public static methods (for example concatStrings(String...), but no member fields. There were a number of classes subclassing this class just so they could call concatStrings(str1, str2) without prefixing it with the class like so: StringHelper.concatStrings(str1, str2).

I didn't want them subclassing a class just for that reason, so I broke a bunch off. I pasted the following static import into the top of any file subclassing it after removing the extends StringHelper:

import static com.example.StringHelper.*;

Eclipse simplified this into specific imports for only the methods being used.

Question: Is there a simple way to have Eclipse "inline" these static imports? Can I get it to remove the actual static import and prefix every call with StringHelper. instead?

Note
This is a simplified contrived example, so please don't complain about why we need a StringHelper in the first place.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

硬不硬你别怂 2024-10-10 05:28:37

这样就可以做到这一点:

  • 突出显示 concatStrings() 的一次调用。确保在突出显示中包含括号。选择 Refactor/Extract Method,将其命名为 foo。确保选中“用方法替换 47 个额外出现的语句”。
  • 在新的 foo 方法中,添加“StringHelper”。 concatStrings 调用的前缀
  • 删除 import static
  • Do Refactor/Inline 以摆脱 foo 并将静态调用放回到它们所属的位置,以及它们闪亮的新前缀。

This will do it:

  • Highlight one invocation of concatStrings(). Make sure to include the parentheses in the highlighting. Select Refactor/Extract Method, call it foo. Make sure to check the "Replace 47 additional occurrences of statements with method"
  • In your new foo method, add the "StringHelper." prefix to the invocation of concatStrings
  • remove the import static
  • Do Refactor/Inline to get rid of foo and put your static calls back where they belong, along with their shiny new Prefixes.
海夕 2024-10-10 05:28:37

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

Don't know if there's an automatic way, but I think it can help in a manual way. Delete the import, then click on each line with an error on it. Press ctrl-1 for 'quick fix' and choose the quick fix that prefixes the package name rather than add an import.

有木有妳兜一样 2024-10-10 05:28:37
Preferences -> Java -> Code Style -> Organize Imports

您可以在此处配置对它们进行分组所需的导入数量。

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

There you can configure how many imports will be required to group them.

早茶月光 2024-10-10 05:28:37

首选项>爪哇>代码风格>组织导入:

“.* 所需的静态导入数量”将其设置为 1。

Preferences > Java > Code Style > Organize Imports:

"Number of static imports needed for .*" set this to 1.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文