当底层劳动人民帮我们把活干了,我们就会发现,活变少了。
1. 定义对象后,get和set属性生成
a. 手动的一个个写getter和setter--最古老的方式
b.通过注解来实现
1) 通过Accessors注解
Lombok的@Accessors注解主要用于控制类中字段的getter和setter方法的生成行为。一般和@Getter @Setter 一起使用。
它可以通过配置不同的属性来定制生成的getter和setter方法的命名风格和行为。
@Accessors注解主要有两个属性:
1.1.1) chain:类型为boolean,默认值为false。如果设置为true,生成的setter方法会返回当前对象(即this),从而支持链式调用(Fluent API)
@Accessors(chain = true)
public class User {
private String name;
private int age;
}
1.1.2)使用链式调用
User user = new User().setName("Alice").setAge(25);
1.2.1) fluent:类型为boolean,默认值为false。如果设置为true,生成的getter和setter方法会省略get和set前缀,直接使用字段名作为方法名。
@Accessors(fluent = true)
public class User {
private String name;
private int age;
}
1.2.2) 使用调用链
User user = new User().name("Alice").age(25);
2)使用@Data注解
@Data 是一个复合注解,它相当于同时使用了以下注解:
-
@Getter- 为所有字段生成getter方法 -
@Setter- 为所有非final字段生成setter方法 -
@ToString- 生成toString()方法 -
@EqualsAndHashCode- 生成equals()和hashCode()方法 -
@RequiredArgsConstructor- 生成包含所有final字段的构造器
两个注解的区别
| 特性 | @Data | @Accessors |
|---|---|---|
| 功能 | 复合多个注解功能 | 控制getter/setter的生成方式 |
| 用途 | 快速生成POJO的基本方法 | 定制getter/setter的行为 |
| 独立性 | 可以单独使用 | 通常需要与@Getter/@Setter/@Data一起使用 |
| 配置项 | 无 | 有chain、fluent、prefix等配置 |
@Data用于快速生成一个完整的POJO,而@Accessors用于对生成的getter/setter方法进行更精细的控制。
2723

被折叠的 条评论
为什么被折叠?



