1. 程式人生 > 實用技巧 >idea外掛 - lombok常用註解

idea外掛 - lombok常用註解

依賴

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.8</version>
  <scope>provided</scope>
</dependency>

# 常用註解
預設生成的方法是public的,如果要修改方法修飾符可以設定AccessLevel的值,例如:@Getter(access = AccessLevel.PROTECTED)。
@Data 註解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法
@Setter :註解在屬性上;為屬性提供 setting 方法
@Setter :註解在屬性上;為屬性提供 getting 方法
@ToString:註解在類上;生成toString()方法,預設情況下,它會按順序(以逗號分隔)列印你的類名稱以及每個欄位。可以這樣設定不包含哪些欄位@ToString(exclude = "id") / @ToString(exclude = {"id","name"})。
@EqualsAndHashCode:註解在類上;生成hashCode()和equals()方法,預設情況下,它將使用所有非靜態,非transient欄位。但可以通過在可選的exclude引數中來排除更多欄位。或者,通過在parameter引數中命名它們來準確指定希望使用哪些欄位。
@Slf4j :註解在類上;根據使用者實際使用的日誌框架生成log日誌物件。
@Log4j :註解在類上;為類提供一個 屬性名為log 的 log4j 日誌物件
@NoArgsConstructor :註解在類上;為類提供一個無參的構造方法
@AllArgsConstructor :註解在類上;為類提供一個全參的構造方法
@RequiredArgsConstructor:註解在類上;會生成構造方法(可能帶引數也可能不帶引數),如果帶引數,這引數只能是以final修飾的未經初始化的欄位,或者是以@NonNull註解的未經初始化的欄位
@RequiredArgsConstructor(staticName = "of")會生成一個of()的靜態方法,並把構造方法設定為私有的。
@Cleanup : 可以關閉流
@Builder : 被註解的類加個構造者模式
@Synchronized : 加個同步鎖
@SneakyThrows : 等同於try/catch 捕獲異常
@NonNull : 如果給引數加個這個註解 引數為null會丟擲空指標異常
@Value : 註解和@Data類似,區別在於它會把所有成員變數預設定義為private final修飾,並且不會生成set方法。
@SneakyThrows : 這個註解用在方法上,可以將方法中的程式碼用try-catch語句包裹起來,捕獲異常並在catch中用Lombok.sneakyThrow(e)把異常丟擲,可以使用@SneakyThrows(Exception.class)的形式指定丟擲哪種異常
@Synchronized : 這個註解用在類方法或者例項方法上,效果和synchronized關鍵字相同,區別在於鎖物件不同,對於類方法和例項方法,synchronized關鍵字的鎖物件分別是類的class物件和this物件,而@Synchronized得鎖物件分別是私有靜態final物件LOCK和私有final物件lock,當然,也可以自己指定鎖物件

參考: https://blog.csdn.net/sunsfan/article/details/53542374