idea外掛 - lombok常用註解
阿新 • • 發佈:2020-09-17
依賴
<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