簡體   English   中英

如何修改用於getter和setter的IDEA IntelliJ v10.x代碼生成器?

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

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