![](/img/trans.png)
[英]Handle Boolean like boolean for Getter/Setter generation
[英]Boolean Getter and Setter using eclipse
我想知道為什么eclipse產生以下getter和setter如果我使用以下布爾值:
boolean isLifeTimeMember
getter應該是isIsLifeTimeMember()而不是isLifeTimeMember()
我認為它影響了在JSP中調用變量isLifeTimeMember。 因為它會查看JSP並將其映射到isIsLifeTimeMember()getter方法。
將導致錯誤,因為沒有isIsLifeTimeMember()方法,但eclipse生成的getter是isLifeTimeMember()
謝謝。
Eclipse名稱生成規則是布爾getter應該以is
開頭。 如果變量名已經以is
開頭,那么它認為不需要額外的前綴。
Eclipse有控制使用的設置is
對於產生boolean值干將。 打開首選項並導航到Java > Code Style
。 在那里你可以取消選中“使用'是'前綴用於返回布爾值的getter”。 Eclipse生成的布爾getter將以“get”開頭,就像所有其他的一樣。
順便說一句,Java有一個具有相同名稱的字段和方法沒有問題。
但是,使用以“is”開頭的屬性名稱可能會導致jsp出現問題。 如本主題所述 ,最好避免使用類似問題的屬性名稱(isLifeTimeMember),而只是將屬性本身用作屬性名稱(lifeTimeMember)。
代碼示例:
boolean lifeTimeMember;
public boolean isLifeTimeMember() {
return lifeTimeMember;
}
public void setLifeTimeMember(boolean lifeTimeMember) {
this.lifeTimeMember = lifeTimeMember;
}
在JSP中,如果需要使用此變量,只需使用變量名“lifeTimeMember”。
在布爾變量的情況下,eclipse prepends is
變量名稱以形成getter名稱。 即如果變量是boolean present;
然后將gemerated getter命名為isPresent();
它不是最好有一個is
變量名。
如果變量名是ispresent
,那么在jsp上你將按變量名查找ispresent
,它會查找其getter,它是一個布爾值,因此它假設getter是isispresemt();
這是不存在如在Eclipse中的getter setter方法產生不添加的is
在已經在變量名existe情況。
因此,一個異常could not find the field ispresent
是否會被拋出
具有is
在字段名稱,可能會造成問題,避免使用它們
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.