@Accessors(chain = true) 是 Lombok 库中的一个注解属性,它应用于类级别,用于修改生成 getter 和 setter 方法的行为。当 chain = true 时,setter 方法会返回 this,使得可以进行链式调用(fluent API)。
链式调用是一种编程风格,允许你以流畅的方式在一行代码中调用多个方法。这通常用于构建器模式(Builder Pattern)中,以创建具有多个配置选项的对象。
举个例子,假设你有一个 Person 类,它使用 @Accessors(chain = true) 注解:
import lombok.Setter;
import lombok.Getter;
import lombok.experimental.Accessors;
@Getter
@Setter
@Accessors(chain = true)
public class Person {
private String name;
private int age;
}
由于 chain = true,当你调用 setter 方法时,它会返回 this,这样你就可以继续调用其他方法:
Person person = new Person()
.setName("A")
.setAge(10);
在上述代码中,setName 方法返回 person 对象的引用,允许我们在同一行代码中继续调用 setAge 方法。如果没有 chain = true,则每个 setter 方法调用都会返回 void,并且链式调用将不可能实现。