2011-08-31 63 views
4

當我使用自動生成的的getter/setter在Eclipse中的一個類別字段與名稱類似
String lAttr會產生這樣的:奇怪的自動生成的getter和setter

public String getlAttr() { 
    return lAttr; 
} 
public void setlAttr(String lAttr) { 
    this.lAttr = lAttr; 
} 

的第一個字母字段不會被大寫!但是我使用的一些框架使用反射並通過使用「get」+大寫字段名稱調用getter/setter。

我可以更改eclipse中getter/setter的代碼生成以產生如getLAttr()setLAttr()的輸出嗎?

+0

這聽起來像一個日食的bug。 –

+0

它似乎只發生在前綴中只有一個小寫字符時。 – user802421

+1

Eclipse根據Java約定創建了getter和setter名稱,請參閱http://stackoverflow.com/questions/1991316/where-is-the-javabean-property-naming-convention-defined – xmedeko

回答

0

您使用的是哪個版本的Eclipse?我在Eclipse 3.5.2中嘗試了這一點,當我對該字段進行挖掘並單擊「爲'lAttr'創建getter和setter'」時,出現的對話框允許我將生成的名稱從getlAttr更改爲getLAttrsetlAttrsetLAttr。另一種選擇是從一開始就將您的字段LAttr命名並避免整個混亂。

+0

以大寫字母開頭的字段正在打破Java約定。 – xmedeko

2

它可以給你自己的getter/setter的名字在eclipse。 使您的變量保密。轉到錯誤,您嘗試訪問另一個類中的私有變量。 選擇生成getter/setter的快速修復。它彈出一個對話框,其中getter/setter名稱是可修改的。