![](/img/trans.png)
[英]Lombok added but getters and setters not recognized in Intellij IDEA
[英]How do you modify IDEA IntelliJ v10.x code generators for getters and setters?
IntelliJ為布爾字段生成以下getter / setter代碼:
private boolean isTest;
public boolean isTest() {
return isTest;
}
public void setTest(boolean test) {
isTest = test;
}
這也產生相同的方法簽名:
private boolean test;
public boolean isTest() {
return test;
}
public void setTest(boolean test) {
this.test = test;
}
大! 到現在為止還挺好。 IntelliJ遵循JavaBean布爾命名約定。
但是請注意使用對象布爾(而不是原始布爾)時會發生什么:
private Boolean isTest;
public Boolean getTest() {
return isTest;
}
public void setTest(Boolean test) {
isTest = test;
}
哦哦! 你看到了嗎? 它應該改為生成它(Eclipse這樣做):
private Boolean isTest;
public Boolean getIsTest() {
return isTest;
}
public void setIsTest(Boolean isTest) {
isTest = isTest;
}
這似乎沒什么大不了,但是這種微小的不一致導致了巨大的項目夢night。 原因是:還有其他層和框架希望將變量完全映射到Java類字段名稱-否則,如果沒有自定義映射邏輯(痛苦和不必要),它將失敗。
我們的團隊對所有布爾對象使用is * Name *模式。 甚至我們的布爾數據庫列都被命名為is_ name ,使用Eclipse的JBoss Hibernate逆向工程工具插件可以將其轉換為“ is * Name *”。
有誰知道如何解決這一問題? 我們可以配置某種類型的代碼生成模板嗎? 任何幫助是極大的贊賞。
據報道 ,Eclipse為Boolean生成get<Property>
,而IDEA生is<Property>
。 它違反規范,用戶要求對其進行修復。
解決此錯誤的結果是,當前的IDEA版本正在按照JavaBeans規范工作,並且僅將這種getter用於原始boolean
類型,將get<Property>
用於其他類型(包括Boolean
。
抱歉,但是無法在IDEA中配置此行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.