2014-09-23 24 views
0

有一些問題試圖從公開到私人。我希望走另一條路。Eclipse:使用重構工具(或插件)將變量從私有變爲公共?

我有一箇中等大小的項目,我希望將三個常用變量從private更改爲public。該getter和setter方法的形式爲:

private int x; 
public getX() { return x; } 
public setX(int x) { this.x = x; } 

有一種簡單的方法來重構這些變量,去掉制定者和所有引用的制定者,並直接與變量替換?

據我所知,Eclipse的重構支持從公共轉變爲私有,但其他的方式似乎很難。如果它本身不支持,是否有插件可以執行此任務?

[編輯:要補充,我使用Eclipse開普勒,服務版本2]。

+0

爲什麼你想要一個公共變量? – michael667 2014-09-23 08:06:48

+0

@ michael667 getter和setter不向類中添加任何內容:值不會被setter或getter修改,因此在使用這些值的代碼中所有結果都是額外的批量。這是一個經常使用的非常原始的數據類型;我更願意一致地訪問變量,並且在離開setter的時候將其公開,只是混亂而已。 – simont 2014-09-23 08:07:19

回答

0

你爲什麼不簡單地保持你的getter和setter?

public int x; 
public getX() { return x; } 
public setX(int x) { this.x = x; } 
+0

以上評論,但也回答你的答案:getter和setter不向類中添加任何內容:值不會被setter或getter修改,因此所有結果都是使用這些值的代碼中的額外批量。這是一個經常使用的非常原始的數據類型;我更願意一致地訪問變量,並且在離開setter的時候將其公開,只是混亂而已。 – simont 2014-09-23 08:07:52

+0

你有沒有嘗試使用「remplace all」功能?或者也許你有一個其他類使用同名的方法 – jhamon 2014-09-23 08:19:58

+0

使任何成員變量公開(沒有很好的理由)會破壞封裝 – 2014-09-24 03:52:50

0

在Eclipse中沒有這樣的內置重構。可能最好的做法是讓Eclipse找到方法的用法,然後用手替換它們。當然,你可以隨時在Eclipse中編寫你自己的重構,但是通過學習曲線,這可能需要比手動修改更長的時間。

0

雖然我覺得這個要求是很奇怪(的getX()和setX的()似乎沒意見,甚至對你的使用情況),你可以在3個步驟做:

  1. 更改修改從privatepublic
  2. 內嵌吸氣getX()
  3. 內嵌裝定字段xsetX()

我在本地測試了它,它可以在Eclipse 3.8.1中使用。