当前位置: 首页 > java >正文

活到老学到老-Spring注解-如何创建get和set

当底层劳动人民帮我们把活干了,我们就会发现,活变少了。

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方法进行更精细的控制。 

http://www.xdnf.cn/news/7726.html

相关文章:

  • C++面向对象——多态
  • 进程之IPC通信一
  • 内核常见面试问题汇总
  • PN结的形成及特性
  • 技术派项目——注册登录(用户名密码的方式)
  • 瀚高安全版4.5.8/4.5.9字符串默认按字节存储导致数据无法写入(APP)
  • 前端流行框架Vue3教程:20. 插槽slot(2)
  • leetcode 找到字符串中所有字母异位词 java
  • 牛顿迭代法求解除法
  • C语言中三个点代表什么含义...
  • LeetCode 438. 找到字符串中所有字母异位词 | 滑动窗口与字符计数数组解法
  • base算法
  • Web开发-Python应用Flask框架Jinja模版绑定路由参数传递页面解析SSTI注入
  • Baumer工业相机堡盟工业相机的工业视觉如何使用三色光进行字符识别检测
  • 第十六届C++B组easyQuestions
  • AI产品经理课程推荐
  • 2025ICPC南昌邀请赛-G
  • 【实验增效】5 μL/Test 高浓度液体试剂!Elabscience PE Anti-Mouse Ly6G抗体 简化流式细胞术流程
  • 【操作系统】进程同步问题——生产者-消费者问题
  • 【Git】远程操作
  • spring cloud gateway配置
  • 探索自定义地图样式,打造应用专属个性化地图
  • 《探索具身智能机器人视觉-运动映射模型的创新训练路径》
  • 中级网络工程师知识点8
  • Rocketmq Broker与队列关系,怎么存储的
  • AI语音合成平台:AnKo开启免费创作新时代!
  • 基于Telink 8258配合Wireshark抓包测试SIG Mesh的IV Index Update过程
  • Java基础 Day16
  • leetcode hot100:四、解题思路大全:滑动窗口(无重复字符的最长子串、找到字符串中所有字母异位词)、子串(和为k的子数组、)
  • Mysql刷题 day07