Lombok(Project Lombok)是一个 Java 库,它通过使用注解来简化 Java 代码的编写,特别是用于减少样板代码的重复。其中之一的功能是自动生成默认值。下面是一个示例代码,展示了如何使用 Lombok 的默认值功能:
首先,确保你的项目中引入了 Lombok 库的依赖。你可以在 Maven 或 Gradle 中添加以下依赖:
Maven:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version> <!-- 请根据最新版本进行更新 -->
<scope>provided</scope>
</dependency>
Gradle:
compileOnly 'org.projectlombok:lombok:1.18.22' // 请根据最新版本进行更新
annotationProcessor 'org.projectlombok:lombok:1.18.22'
接下来,假设你有一个 Java 类 Person
,并且希望为其属性设置默认值,你可以使用 Lombok 的 @Builder
注解和 @Default
注解来实现。这里是一个示例:
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import lombok.experimental.Default;
@Data
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@RequiredArgsConstructor
@ToString
public class Person {
@NonNull
private String firstName;
@Default // 使用@Default注解来设置默认值
private int age = 30; // 默认值为30
private String lastName;
}
在上面的示例中,我们使用了不同的 Lombok 注解:
@Data
: 自动生成 equals
、 hashCode
、 toString
等方法。@Builder
: 自动生成一个 Builder 类,用于创建 Person
对象。@Accessors(chain = true)
: 生成具有链式调用方法的 setter 方法。@NoArgsConstructor
: 自动生成无参构造函数。@RequiredArgsConstructor
: 自动生成带有 @NonNull
字段的构造函数。@ToString
: 自动生成 toString
方法。对于 age
属性,我们使用了 @Default
注解来设置默认值为 30。这意味着如果你创建一个 Person
对象并不显式地设置 age
属性的值,它将自动设置为 30。
示例用法:
public class Main {
public static void main(String[] args) {
Person person = Person.builder()
.firstName("John")
.lastName("Doe")
.build();
System.out.println(person); // 输出: Person(firstName=John, age=30, lastName=Doe)
}
}
在上面的示例中,我们创建了一个 Person
对象,没有显式设置 age
属性的值,因此它自动使用默认值 30。这就是 Lombok 的默认值功能的使用示例。