2012-03-22 29 views
39

我使用Eclipse鍵盤快捷鍵Ctrl鍵++Ø所有時(組織導入)。Eclipse的組織導入(ctrl + shift + o)命令對靜態導入的處理可以修改嗎?

但是,它有一個特別令人討厭的行爲:

如果我有任何靜態導入,如:

import static java.lang.Math.*; 

組織導入將「很有幫助」,只有字段和方法我的靜態導入更換我正在使用。例如:

import static java.lang.Math.PI; 
import static java.lang.Math.cos; 

有沒有什麼辦法從Organize Imports中刪除這種行爲?

+0

我知道,使用靜態導入*會污染我的類的命名空間,可能會有很多未使用的綁定,並且靜態導入可能會使代碼更不可讀。不過,我想弄清楚如何在Eclipse中做到這一點。 – ulmangt 2012-03-22 21:48:16

+1

我通常只是輸入例如「Math.PI」,然後按Ctrl-Alt-M,它將創建靜態導入。你只需要做一次靜態導入。 – 2012-03-22 21:50:13

+0

爲什麼這很重要?我假設你問的是「現在實際使用的字段和方法*」,並且你希望能夠在不輸入Math,Ctrl + Shift + O,Ctrl + S, '.sin',Ctrl + Space,左,左,Ctrl + Alt + M – Stephen 2012-03-22 21:51:40

回答

51

肯定的:窗口 - >首選項 - >爪哇 - >代碼樣式 - >組織導入

調整"Number of static imports needed for .*"到1的值,它總是使用*。當然,這不是相當於就像說:「只留下靜態進口」,但希望它是你想要的。

基本上,這個數字表示「如果我導入了這麼多項目,則使用此導入的所有方法或字段」。因此,如果數字爲2,則只有在您使用兩個或多個導入時纔會添加星號。這將解決您在回覆中提到的問題。

+0

謝謝!你說得對,它不完全相同,因爲現在它會將任何明確的靜態導入轉化爲我已經導入的導入。這就是說,我認爲這將符合我的目的。 – ulmangt 2012-03-22 22:05:37

+2

討厭。我真的不希望在我的代碼中將隨機靜態導入更改爲*,我只是想讓我的測試全部使用Assert。*和Mockito。* – mjaggard 2015-09-15 16:13:38