java @Accessor
时间: 2023-11-16 09:45:36 浏览: 57
@Accessor是Lombok库中的一个注解,用于控制Java类的访问器方法的生成方式。根据提供的引用内容,有两个常见的@Accessor选项:fluent和chain。
当使用@Accessors(fluent = true)注解时,不需要使用set和get前缀来为对象赋值和取值。例如,在一个使用@Data和@Accessors(fluent = true)注解的User类中,可以通过链式编程的方式直接为对象的属性赋值,而无需使用set前缀。示例代码如下:
```java
@Data
@Accessors(fluent = true)
public class User implements Serializable {
private String id;
private String name;
private int age;
public static void main(String[] args) {
User user = new User();
user.name("aaa").age(18);
System.out.println(user);
}
}
```
另一方面,当使用@Accessors(chain = true)注解时,setter方法将返回当前对象本身,从而实现链式编程。例如,在一个使用@Data和@Accessors(chain = true)注解的User类中,可以通过链式编程的方式为对象的属性赋值,并且连续调用多个setter方法。示例代码如下:
```java
@Data
@Accessors(chain = true)
public class User implements Serializable {
private String id;
private String name;
private int age;
public static void main(String[] args) {
User user = new User();
user.setId("123").setAge(17).setName("小明");
System.out.println(user);
}
}
```
总结起来,@Accessors注解可以用于控制生成访问器方法的方式,通过设置fluent为true可以省略set和get前缀,在链式编程中使用chain=true可以让setter方法返回当前对象本身。这些注解可以提高代码的可读性和简洁性。