簡體   English   中英

使用eclipse的布爾Getter和Setter

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM