<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      只為成功找方向,不為失敗找借口

      每天都不能停止前進的腳步
        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理

      Lombok使用

      Posted on 2018-09-07 15:35  冰碟  閱讀(281)  評論(0)    收藏  舉報

      介紹

      在項目中使用Lombok可以減少很多重復代碼的書寫。比如說getter/setter/toString等方法的編寫。

      IDEA中的安裝

      打開IDEA的Setting –> 選擇Plugins選項 –> 選擇Browse repositories –> 搜索lombok –> 點擊安裝 –> 安裝完成重啟IDEA –> 安裝成功

      idea安裝Lombok

      引入依賴

      在項目中添加Lombok依賴jar,在pom文件中添加如下部分。(不清楚版本可以在Maven倉庫中搜索)

      <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.16.18</version>
          <scope>provided</scope>
      </dependency>

      使用

      在對應的類或者方法上使用對應注解即可。例如: 
      示例

      Lombok有哪些注解

      • @Setter
      • @Getter
      • @Data
      • @Log(這是一個泛型注解,具體有很多種形式)
      • @AllArgsConstructor
      • @NoArgsConstructor
      • @EqualsAndHashCode
      • @NonNull
      • @Cleanup
      • @ToString
      • @RequiredArgsConstructor
      • @Value
      • @SneakyThrows
      • @Synchronized

      注解詳情

      log

      注解在 類 上。有如下可選擇可用:

      //@CommonsLog
      private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
      //@JBossLog
      private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);
      //@Log
      private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
      //@Log4j
      private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);
      //@Log4j2
      private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
      //@Slf4j
      private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
      //@XSlf4j
      private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

      默認情況下,記錄器的主題(或名稱)將是使用注釋進行@Log注釋的類的類名稱。這可以通過指定topic參數來定制。例如:@XSlf4j(topic="reporting")

      該類型注解可以滿足不同的日志系統的日志使用,Lombok提供了一些自定義配置項可以參看官方說明文檔。

      Log官方介紹

      @Getter和@Setter

      該注解使用在類或者屬性上,該注解可以使用在類上也可以使用在屬性上。生成的getter遵循布爾屬性的約定。例如:boolean類型的sex,getter方法為isSex而不是getSex

      在使用該注解時,會默認生成一個無參構造。和對應的getterhe setter方法 
      示例

      該注解也可以使用在單個屬性上,會默認生成一個無參構造: 
      示例

      @Data

      該注解使用在類上,該注解會提供getter、setter、equals、canEqual、hashCode、toString方法。

      示例

      @NonNull

      該注解使用在屬性上,該注解用于屬的非空檢查,當放在setter方法的字段上,將生成一個空檢查,如果為空,則拋出NullPointerException。 
      該注解會默認是生成一個無參構造。 
      示例

      @toString

      該注解使用在類上,該注解默認生成任何非講臺字段以名稱-值的形式輸出。 
      1、如果需要可以通過注釋參數includeFieldNames來控制輸出中是否包含的屬性名稱。 
      2、可以通過exclude參數中包含字段名稱,可以從生成的方法中排除特定字段。 
      3、可以通過callSuper參數控制父類的輸出。

      • includeFieldNames是否包含屬性名稱: 
        示例
      • exclude 排除指定字段 
        示例
      • callSuper輸出父類屬性 
        示例

      注意:父類也要有toString方法,不然打印的是對象內存地址

      //父類無toString方法
      Person(super=com.motui.Person@3abfe836, firstName=motui, address=北京, dateOfBirth=Tue Jan 09 11:49:05 CST 2018, sex=true)
      //父類有toString方法
      Person(super=People(id=111), firstName=motui, address=北京, dateOfBirth=Tue Jan 09 11:50:11 CST 2018, sex=true)
      

      該注解使用在類上,該注解在類級別注釋會同時生成equalshashCode。 
      注意繼承關系的時候該注解的使用。詳細介紹參照官方介紹 
      示例
      存在繼承關系需要設置callSuper參數為true

      @Data

      該注解使用在類上,該注解是最常用的注解,它結合了@ToString,@EqualsAndHashCode, @Getter和@Setter。本質上使用@Data注解,類默認@ToString@EqualsAndHashCode以及每個字段都有@Setter@getter。該注解也會生成一個公共構造函數,可以將任何@NonNullfinal字段作為參數。

      雖然@Data注解非常有用,但是它沒有與其他注解相同的控制粒度。@Data提供了一個可以生成靜態工廠的單一參數,將staticConstructor參數設置為所需要的名稱,Lombok自動生成的構造函數設置為私有,并提供公開的給定名稱的靜態工廠方法。 
      示例

      @AllArgsConstructor

      該注解使用在類上,該注解提供一個全參數的構造方法,默認不提供無參構造。 
      示例

      @NoArgsConstructor

      該注解使用在類上,該注解提供一個無參構造 
      示例

      @RequiredArgsConstructor

      該注解使用在類上,使用類中所有帶有 @NonNull 注解的或者帶有 final 修飾的成員變量生成對應的構造方法。 
      實例

      @Value

      這個注解用在 類 上,會生成含所有參數的構造方法,get 方法,此外還提供了equals、hashCode、toString 方法。 
      注意:沒有setter 
      示例

      @Cleanup

      該注解使用在屬性前,該注解是用來保證分配的資源被釋放。在本地變量上使用該注解,任何后續代碼都將封裝在try/finally中,確保當前作用于中的資源被釋放。默認@Cleanup清理的方法為close,可以使用value指定不同的方法名稱。 
      示例

      @Synchronized

      該注解使用在類或者實例方法上,Synchronized在一個方法上,使用關鍵字可能會導致結果和想要的結果不同,因為多線程情況下會出現異常情況。Synchronized 
      關鍵字將在this示例方法情況下鎖定當前對象,或者class講臺方法的對象上多鎖定。這可能會導致死鎖現象。一般情況下建議鎖定一個專門用于此目的的獨立鎖,而不是允許公共對象進行鎖定。該注解也是為了達到該目的。 
      示例

      @SneakyThrows

      該注解使用在方法上,這個注解用在 方法 上,可以將方法中的代碼用 try-catch 語句包裹起來,捕獲異常并在 catch 中用 Lombok.sneakyThrow(e) 把異常拋出,可以使用 @SneakyThrows(Exception.class) 的形式指定拋出哪種異常。該注解需要謹慎使用。詳情參看官方介紹 
      示例

      結語

      Lombok的目的是減少代碼的重復編寫,并提供比較好的解決方案。當然也存在一些爭議性的注解,可以根據實際場景進項使用。Lombok有一些實驗注解可以在官網查看。

      主站蜘蛛池模板: 精品国产欧美一区二区三区在线| 亚洲成av人片无码不卡播放器| 少妇伦子伦精品无吗| 日韩美女视频一区二区三区| 老司机亚洲精品一区二区| 好紧好滑好湿好爽免费视频| 国产精品午夜福利免费看| 激情97综合亚洲色婷婷五| 汽车| 人妻夜夜爽天天爽一区| 55大东北熟女啪啪嗷嗷叫| 97精品人妻系列无码人妻| 国产av国片精品一区二区| 中国xxx农村性视频| 性色av无码久久一区二区三区| 艳妇乳肉豪妇荡乳xxx| 免费成人网一区二区天堂| 成人3D动漫一区二区三区| 国产精品久久国产精麻豆| 亚洲天堂男人的天堂在线| 国产成人a在线观看视频免费| 日日碰狠狠躁久久躁综合小说| 人人澡人人透人人爽| 国内揄拍国产精品人妻电影| 少妇人妻偷人精品免费| 99久久亚洲综合精品网| 伊人成人在线视频免费| 青青狠狠噜天天噜日日噜| 国产首页一区二区不卡| 成人拍拍拍无遮挡免费视频| 亚洲熟女一区二区av| 亚洲午夜精品国产电影在线观看 | 成人亚欧欧美激情在线观看| 精品免费国产一区二区三区四区| 欧美精品一区二区三区中文字幕| 精品国产美女福到在线不卡| 亚日韩精品一区二区三区| 日本欧美一区二区三区在线播放| 国产乱xxxxx97国语对白| 欧美成年黄网站色视频| 久久久亚洲欧洲日产国码αv|