作用:
@RequiredArgsConstructor 自动生成了一个包含所有 final 字段的构造函数。
使用示例:
假设我们有一个简单的 Java 类:
import lombok.RequiredArgsConstructor;
@Data // 生成所有的 getter 和 setter 方法
@RequiredArgsConstructor // 生成了一个包含所有 final 字段的构造函数
public class Person {
private final String name; // final 字段
private final int age; // final 字段
private String address; // 非 final 字段
public void printInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Address: " + address);
}
}
Person 类中有三个字段:name、age 和 address。
name 和 age 是 final 类型的字段。
address 是非 final 类型的字段。
由于 name 和 age 是 final 类型的字段,Lombok中的@RequiredArgsConstructor会在编译时自动生成一个包含这两个字段的构造函数:
public Person(String name, int age) {
this.name = name;
this.age = age;
}
下面是如何使用这个类:
public class Main {
public static void main(String[] args) {
Person person = new Person("Alice", 25); // 使用自动生成的构造函数
person.setAddress("New York");
person.printInfo();
}
}
运行上面的 Main 类,输出结果如下:
Name: Alice
Age: 25
Address: New York