的IntelliJ生成以下的getter/setter代碼布爾字段:如何修改IDEA IntelliJ v10.x代碼生成器以獲取和設置?
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;
}
這看起來好像沒什麼大不了的,但這個小不一致造成了巨大的項目噩夢。原因是這樣的:還有其他層和框架期望將變量完全映射到Java類字段名 - 否則它會失敗,沒有自定義映射邏輯(痛苦和不必要的)。
我們的團隊對所有布爾對象使用is * Name *模式。即使我們的布爾數據庫列名爲is_ 名稱,使用JBoss Hibernate反向工程工具插件將其轉換爲「is * Name *」。
有誰知道如何解決這個問題?是否有一些我們可以配置的代碼生成模板?任何幫助是極大的讚賞。
謝謝。我在您提供的鏈接的帖子中發佈了後續評論。 – jpongin
@CrazyCoder這個變了嗎?我使用的是版本14.1.1,它仍然生成布爾值爲。我錯過了什麼嗎? –
stepanian
@stepanian不確定,如果您認爲它違反了最新的規範,請在http://youtrack.jetbrains.com/issues/IDEA提交錯誤。 – CrazyCoder