1.概念
@Accessors
是 Lombok 库提供的一个注解,用于自定义 JavaBean 的 getter 和 setter 方法的生成方式。它有三个主要属性:fluent
、chain
和 prefix
。
- chain 属性:当设置为
true
时,生成的 setter 方法会返回当前对象实例(this
),从而支持链式调用。例如,@Accessors(chain=true)
允许你通过user.setAge(31).setName("pollyduan")
这样的链式方式设置属性 。 - fluent 属性:类似于
chain
,但生成的方法名直接使用字段名,而不是setFieldName
格式,提供更自然的链式调用体验。如果设置为true
,对应字段的 getter 方法前面就没有get
,setter 方法就不会有set
。例如,@Accessors(fluent=true)
允许调用user.age(31).name("pollyduan")
。 - prefix 属性:该属性是一个字符串数组,用于指定生成的 getter 和 setter 方法时应该忽略的字段前缀。例如,如果字段名为
fName
并且@Accessors(prefix = "f")
,则生成的 setter 方法将直接使用setName
而不是setFName
。
2.实例代码
实体类:
@Accessors(chain =true)
public class student implements serializable {
private Integer id;
private String username;
private String password
private stringname ;
private Integer age;
private String address:
private string phone;
private string email;
private Integer status;
}
测试类:
public class MainTest {
public static void main(string[] args){Student student =new student();
student.setUsername("ZHANGSAN")
.setPassword("password")
.setAge(18)
.setAddress("北京");
}
}
上述写法的作用与下面的一样:
student.setUsername("ZHANGSAN");
student.setPassword("password");
student.setAge(18);
student.setAddress("北京").
pom.xml中加入Lombok 库:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
使用 @Accessors
注解可以减少模板代码的编写,提高代码的可读性和可维护性。