Project Lombok:消除Boilerplate代碼

Project Lombok 使用

簡介:

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

lombok 是一個java的包,它自動裝載到你的編輯器和構建工具裏,從而增加java的功能,讓您能不在寫get,set,equas這些方法了,通過一個註釋,類就有了一個功能齊全的生成器,自動化關閉資源,全程try catch,等等。

作用:就是消除Boilerplate代碼

註解目錄:

  1. @Getter and @Setter
  2. @NonNull
  3. @ToString
  4. @EqualsAndHashCode
  5. @Data
  6. @Cleanup
  7. @Synchronized
  8. @SneakyThrows

使用:

1.intellij idea中 lombok 需要插件的支持 要不會編譯不通過在這裏插入圖片描述
2.註解的作用:

1.@Getter and @Setter註解位置都是可以是字段上,可以是類上
在這裏插入圖片描述
註解到類上就是類的所有變量,註解到字段是 僅字段上生成get set 方法

查看字節碼文件:
在這裏插入圖片描述
2.@NonNull 不能爲空 一旦字段設置了這個屬性就不能設置空值,方法也能用此註解,一樣傳值也不能爲空
使用地方:類 方法 參數 局部變量
在這裏插入圖片描述
例子:
在這裏插入圖片描述
在這裏插入圖片描述
3.@ToString 對應生成 toString 代碼
位置:類上
在這裏插入圖片描述
使用方式:
在這裏插入圖片描述
字節碼文件:
在這裏插入圖片描述

4.@EqualsAndHashCode 生成hashCode 編碼
有幾個參數:

在這裏插入圖片描述
位置:類上
在這裏插入圖片描述
總與@Data連用 下面字節碼文件
在這裏插入圖片描述

5.@Data:
位置:類上
在這裏插入圖片描述
參數:
staticConstructor 設置了後,所有構造函數都是private,但會生成sss static方法獲取對象
在這裏插入圖片描述
相當於@ToString @Setter @Getter @EqualsAndHashCode(callSuper=false)的整合
會生成默認的構造參數
但如果和NonNull 連用就會生成個有參 且不能爲空的參數
在這裏插入圖片描述

字節碼文件:
在這裏插入圖片描述

  1. Cleanup @SneakyThrows 這倆放在一起說:

Cleanup是關閉流的
SneakyThrows 的是在方法報錯的時候使用,利用 try catch 包裹方法的
位置:
方法與構造函數 在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
7. @Synchronized
在這裏插入圖片描述
顯然這是 對象鎖
資料:
我不是很明白,鎖住這個變量的結局,結果顯然我認爲資料也沒說清楚,待續在這裏插入圖片描述

注意問題:嵌套死循環:

圖來源:https://blog.csdn.net/u013202238/article/details/80370868
在這裏插入圖片描述
內循環,言簡意賅就是無限循環,沒有出口。

例子如圖片的博客已經很清楚了,注意一下hashCode 這個方法,防止多次重複利用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章