IT培訓-高端面授IT培訓機構
          云和教育:云和數據集團高端IT職業教育品牌
          • 國家級
            全民數字素養與技能培訓基地
          • 河南省
            第一批產教融合型企業建設培育單位
          • 鄭州市
            數字技能人才(碼農)培養評價聯盟

          模型類的編寫有沒有什么靠譜的優化方法?

          • 發布時間:
            2023-02-15
          • 版權所有:
            云和教育
          • 分享:

          模型類的編寫需要私有屬性,setter…getter…方法、toString方法 和構造函數。雖然這些內容不難,同時也都是通過IDEA工具生成的,但是過程還是必須得走一遍,那么對于模型類的編寫有沒有什么優化方法?可以通過Lombok來實現優化。

          Lombok,是一個Java類庫,提供了一組注解,簡化POJO實體類開發。下面看Lombok的使用步驟:

          步驟1:添加lombok依賴

          <dependency>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
              <!--<version>1.18.12</version>-->
          </dependency>

          注意:版本可以不用寫,因為SpringBoot中已經管理了lombok的版本。

          步驟2:安裝Lombok的插件

          新版本IDEA已經內置了該插件,如果刪除setter和getter方法程序有報紅,則需要安裝插件。

          1676442029959_圖片1.png

          如果在IDEA中找不到lombok插件,可以訪問如下網站

          https://plugins.jetbrains.com/plugin/6317lombok/versions

          根據自己IDEA的版本下載對應的lombok插件,下載成功后,在IDEA中采用離線安裝的方式進行安裝。

          1676442184185_圖片2.png

          步驟3:模型類上添加注解

          Lombok常見的注解有:

          @Setter:為模型類的屬性提供setter方法

          @Getter:為模型類的屬性提供getter方法

          @ToString:為模型類的屬性提供toString方法

          @EqualsAndHashCode:為模型類的屬性提供equals和hashcode方法

          @Data:是個組合注解,包含上面的注解的功能

          @NoArgsConstructor:提供一個無參構造函數

          @AllArgsConstructor:提供一個包含所有參數的構造函數

          Lombok的注解還有很多,上面加粗的三個是比較常用的,其他的大家后期用到了,再去補充學習。

          @Data
          @AllArgsConstructor
          @NoArgsConstructor
          public class User {
              private Long id;
              private String name;
              private String password;
              private Integer age;
              private String tel;
          }

          說明:

          Lombok只是簡化模型類的編寫,我們之前的方法也能用,比如有人會問:我如果只想要有name和password的構造函數,該如何編寫?

          @Data 
          @AllArgsConstructor 
          @NoArgsConstructor 
              public class User { 
              private Long id; 
              private String name; 
              private String password; 
              private Integer age; 
              private String tel; 
              
              public User(String name, String password) { 
                  this.name = name; 
                  this.password = password; 
              } 
          }

          這種方式是被允許的。