2013-01-03 67 views
6

我有一個關於在我的域對象中生成的getter和setter方法的小問題。 我想爲我的源代碼使用通用樣式指南。該風格指南的一部分說,我爲成員啓動每個類成員名稱,前綴爲'm'。Eclipse爲域對象和具有'm'後綴的類成員生成getter/setter

class User{ 
String mName; 
List<Call> mAllCall; 
List<Geo> mAllGeo; 

不幸的是,我有一些有更多成員變量的類。我的問題是我是一個非常懶惰的開發人員,並且我在Eclipse中創建了getter和setter方法,使用

「Source」 - >「Generate Getters and Setters」。

結果是

public String getmName() { 
    return mName; 
} 
public void setmName(String mName) { 
    this.mName = mName; 
} 
public List<Call> getmAllCall() { 
    return mAllCall; 
} 
public void setmAllCall(List<Call> mAllCall) { 
    this.mAllCall = mAllCall; 
} 
public List<Geo> getAllGeo() { 
    return mAllGeo; 
} 
public void setmAllGeo(List<Geo> mAllGeo) { 
    this.mAllGeo = mAllGeo; 
} 

這不是我想要的結果。我需要這個:

public String getName() { 
    return mName; 
} 
public void setName(String pName) { 
    this.mName = pName; 
} 
public List<Call> getAllCall() { 
    return mAllCall; 
} 
public void setAllCall(List<Call> pAllCall) { 
    this.mAllCall = pAllCall; 
} 
public List<Geo> getAllGeo() { 
    return mAllGeo; 
} 
public void setmAllGeo(List<Geo> pAllGeo) { 
    this.mAllGeo = mAllGeo; 
} 

我目前刪除和手動替換方法名稱中的前綴。有沒有更簡單的方法來做到這一點?

+0

爲什麼把所有的領域「M」爲前綴的參考? – MrSmith42

+0

米爲在類的成員字段。 p爲參數。 l爲局部變量。 –

+0

「我開始每個班級成員名稱後綴'm'爲成員」。一個可怕的想法,海事組織。如果您使用的是Eclipse,它已經可以區分視覺局部變量和字段。順便說一句,它應該是「前綴」。 – leonbloy

回答

24

對於前綴m,請在Java代碼樣式中將字母m添加到您的前綴列表中。

遵循以下步驟:

  1. 開放,在左側面板
  2. ,擴大的Java
  3. 擴大代碼樣式
  4. 右側面板中,您現在應該正在看

您將看到一個帶有字段,靜態字段等的列表。這是您需要修改的內容。

Set m against Fields

設置p針對參數

由於該字段的名稱現在與參數的名稱不同,因此this.資格將不再自動添加。但是,您可以檢查選項使用'this'限定所有生成的字段訪問。重新擁有它。

我想你知道之間的區別在窗口的左上角和右邊啓用項目特定的設置配置工作區設置...

3

我不喜歡這個主意可言,但..

你可以寫成員沒有前綴m,讓Eclipse中創建的getter和setter,一個後來重新命名成員(Shift + Alt鍵-R ); Eclipse會更改引用,但不會(除非明確告知它)getters/setters簽名。

1

getter和setter方法的名稱來自字段名稱。如果爲字段使用前綴或後綴(例如fValue,_value,val_m),則可以在代碼樣式首選項頁面(Windows>首選項> Java>代碼樣式)中指定後綴和前綴。

here