一、Lombok常用註解及含義
Lombok是一款Java庫,可以通過註解的方式來減少一些模板代碼,提高開發效率和代碼的可讀性。Lombok常用註解如下:
- @Getter/@Setter: 自動生成JavaBean的getter/setter方法。
- @ToString: 自動生成ToString方法。
- @EqualsAndHashCode: 自動生成equals和hashCode方法。
- @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor: 自動生成無參/指定參數/所有參數的構造函數。
- @Data: 包含@Getter,@Setter,@ToString,@EqualsAndHashCode和@RequiredArgsConstructor,常用於值對象。
- @Builder: 鏈式調用生成器模式,簡化對象創建過程。
@Data
public class User {
private Long id;
private String name;
private String email;
}
上面的代碼使用@Data註解,等同於同時使用了@Getter、@Setter、@ToString、@EqualsAndHashCode和@RequiredArgsConstructor註解。
二、Lombok異常註解
Lombok還提供了一些異常處理相關的註解,如下:
- @SneakyThrows: 在方法內部自動捕獲並忽略異常,等效於try-catch。使用時,需要保證被標註方法的簽名拋出聲明的異常。
- @Getter(lazy=true): 延遲加載,只有在第一次使用時才進行初始化。如果在初始化時拋出異常,則後續調用將拋出NullPointerException。
- @NonNull: 用在參數上,可以生成參數非空判斷,如果參數為空,則拋出NullPointerException。
@SneakyThrows(ReflectiveOperationException.class)
public void test() {
//some reflection code
}
public class User {
@Getter(lazy=true)
private final String fullName = computeFullName();
private String computeFullName() {
//some logic to compute fullName
}
}
public void doSomething(@NonNull String arg) {
//some logic
}
三、Lombok註解的默認值
有些Lombok註解可以指定一些默認值,如下:
- @Builder: 可以設置builder名稱。
- @Value: 默認final、@ToString、@EqualsAndHashCode、@AllArgsConstructor、@FieldDefaults。
- @NoArgsConstructor/@AllArgsConstructor: 可以指定訪問級別。
@Builder(builderMethodName="myBuilder")
public class User {
private Long id;
private String name;
private String email;
}
@Value(staticConstructor="of")
public class Address {
String city;
String street;
int number;
}
@NoArgsConstructor(access=AccessLevel.PROTECTED) //設置訪問級別為protected
public class Person {
private Long id;
private String name;
}
四、Lombok註解啟用
在使用Lombok時,需要在編譯器中安裝Lombok插件,並在項目中引入Lombok庫。同時,需要在項目中添加如下依賴項:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok-version}</version>
<scope>provided</scope>
</dependency>
五、Lombok builder註解使用
使用Lombok builder註解可以輕鬆實現Builder模式,可以方便地創建對象,在對象的屬性比較多時使用較為方便。
User user = User.builder()
.id(1L)
.name("Lily")
.email("lily@example.com")
.build();
六、Lombok怎麼用
在開發過程中,如果使用了Lombok註解,可以通過以下步驟來進行驗證:
- 安裝Lombok插件
- 在項目中引入Lombok庫
- 在代碼中使用Lombok註解
- 編譯並運行項目
七、Lombok的data註解
使用Lombok的@Data註解可以讓JavaBean類的定義更簡單,但需要注意的是,當屬性較多時,可能會出現無限遞歸的問題。此時,可以通過對不需要的字段使用@ToString.Exclude和@EqualsAndHashCode.Exclude來排除該字段。
@Data
public class User {
private Long id;
private String name;
@ToString.Exclude
private String email;
}
八、Lombok自定義註解
使用Lombok提供的註解可以快速地生成簡潔的Java代碼,在實際開發過程中,如果需要使用自定義的註解,可以通過定義註解,並在代碼中使用該註解來實現。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface LogExecutionTime {
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/287333.html