2010-11-18 53 views
3

我正在清理一些代碼,並且發生在包含6或7個public static方法(例如concatStrings(String...),但沒有成員字段)的com.example.StringHelper上,有許多類只是爲了讓它們能夠調用concatStrings(str1, str2)沒有在類的前綴如下所示:StringHelper.concatStrings(str1, str2)在eclipse中內聯所有靜態導入

我不希望它們僅僅爲了這個原因而繼承一個類,所以我弄壞了一堆。我將以下靜態導入粘貼到任何文件子類的頂部它刪除後刪除extends StringHelper

import static com.example.StringHelper.*; 

Eclipse僅將所使用的方法簡化爲特定的導入。

問題:是否有簡單的方法讓Eclipse「內嵌」這些靜態導入?我可以通過StringHelper.來取消實際的靜態導入和前綴嗎?

注意 這是一個簡化人爲的例子,所以請不要抱怨爲什麼我們需要一個在的StringHelper首位。

回答

4

這將做到這一點:

  • 亮點concatStrings的一個調用()。確保在突出顯示中包含括號。選擇重構/提取方法,將其稱爲foo。確保選中「用方法替換47次附加語句」
  • 在新的foo方法中,添加「StringHelper」。前綴到concatStrings的調用
  • 刪除導入靜態
  • 做重構/內聯以擺脫foo並將靜態調用放回到它們所屬的位置,以及它們閃亮的新前綴。
+0

當我選擇concatStrings並選擇「提取方法...」時,出現一個彈出窗口,提示「無法提取單個方法名稱」。 – 2010-11-19 14:58:16

+0

您還需要選擇括號,而不僅僅是方法名稱。 – 2010-11-19 20:12:18

1

不知道是否有自動方式,但我認爲它可以幫助以手動方式。刪除導入,然後點擊其上有錯誤的每一行。按ctrl-1進行「快速修復」,然後選擇爲軟件包名稱添加前綴的快速修復,而不是添加導入。

+0

謝謝,但我不認爲速戰速決知道如果我刪除了靜態導入,那麼這個類是從哪裏來的。無論如何,每種方法的查找替換可能會更快(有些類始終使用一種方法20次)。 – 2010-11-18 21:09:16

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

在那裏您可以配置需要多少個導入來對它們進行分組。

+0

我不是在抱怨它將StringHelper。*靜態導入行分成了三個使用的方法之一。我問我是否可以通過eclipse完全刪除靜態導入行,並將方法調用前綴改爲StringHelper。 – 2010-11-18 21:10:46

+0

啊,我的道歉。 – Jeremy 2010-11-19 02:29:14

0

首選項>的Java>代碼樣式>組織導入:

「需要靜態導入數*。」將其設置爲1