2013-01-22 45 views
0

我正在研究NetBeans上的Java項目。帶Java的Netbeans:將所有方法設置爲靜態

在某些時候,我有幾個變量和方法(比如大約二十個),它們不是靜態的。我想將它們全部重構爲靜態的。我該如何繼續? NetBeans能做到這一點嗎?

例子:

public void method1() { 
//... 
} 
public void method2() { 
//... 
} 

當我點擊某個地方,或按一些按鈕,我想,以前的方法變爲:

例子:

public static void method1() { 
//... 
} 
public static void method2() { 
//... 
} 

的一次。

-

另一種常見的變型:假設我已經把我所有的方法來公開,但我不想要它了。我怎麼能重構所有的方法是私人的(所以後來我可以改變公開只有我覺得有必要)?

回答

0

一年後,我發現這個任務在一個好的通用文本編輯器(如emacs或vim)的幫助下,而不是IDE(NetBeans,Eclipse等)的幫助下可以更好地完成。

在這種情況下,更好的文本編輯器是用戶已經習慣的,Emacs在我的情況。 Multiple cursors包很容易解決這個問題。另一個選項是使用本地query-replace函數(默認綁定到M-%)。

2

這種事情的用例消失得很小。將靜態API轉換爲面向對象可能更爲常見,但將所有內容轉換爲靜態都是不夠的,任何IDE都無法對其進行自動重構,我知道這一點。

我會質疑這樣做的智慧,但是如果您的所有方法都已經以靜態方式編寫,您可以簡單地使用「public static」搜索並替換「public」。

至於改變方法的訪問級別,它將根據IDE而有所不同,但是再次搜索和替換可能比任何點擊複選框重構對話框容易得多,特別是如果您只是打開訪問權限(縮小它可能會破壞其他代碼,儘管它不可​​能是重構工具可以修復的任何東西)。

+0

感謝您的回覆。我贊同你。這個靜態的東西有點特定於我的情況。但是我所問的問題可以概括爲:如何選擇幾個方法並更改(重構)它們的所有修飾符,如靜態,公共,返回類型(例如:將所有返回int的方法更改爲Integer,或將float更改爲double或Float ,等等),最後等等,我想要的修改器集合? 這將是很好的。它就像getter/setter對話框(封裝字段),但是對於一般的幾種方法,不僅僅是getter和setter。 – thiagowfx