【每天学个新注解】Day 10 Lombok注解简解(九)—@Accessors

在之前的几天,我们系统学习了Lombok的常见注解,并且将其官网stable中的所有注解都讲解了一编,接下来会通过两到三天的时间将Lombok目前正在试验的(experimental)注解简单过一遍,以下为experimental状态的所有注解。
在这里插入图片描述

@Accessors

@Accessors注解用于配置生成的getter和setter方法的访问级别和命名方式
接下来介绍的很多Lombok注解都不建议使用,因为Lombok后续增加的很多注解都与其设计初衷相违背,具体的使用建议我会在Lombok注解讲解的最后根据我的使用经验简单讲一下

1、如何使用

  • 注解在需要控制Getter、Setter方法访问级别和命名方式的地方(为@Getter、@Setter提供升级版功能)。
  • @Accessors可以使用以下属性进行配置:
    chain:boolean类型,默认为false。如果设置为true,则生成的setter方法返回this,以支持链式调用。
    fluent:boolean类型,默认为false。如果设置为true,则生成的getter和setter方法的方法名不带get和set前缀。
    prefix:String类型,默认为空字符串。设置生成的getter和setter方法的前缀。
    使用@Accessors可以在类级别和属性级别进行配置。在类级别配置时,会为该类中的所有属性生成相同的访问级别和命名方式。在属性级别配置时,可以为每个属性单独指定不同的配置。

2、代码示例

例:

@ToString
@Getter
@Setter
@Accessors(chain = true, fluent = true, prefix = "my")
public class AccessorsExample {private String myName;private int myAge;public static void main(String[] args) {AccessorsExample example = new AccessorsExample().name("John").age(30);System.out.printf("Age" + example.age());}
}

编译后:在上面的示例中,我们在类级别使用@Accessors注解配置了链式调用、去除前缀的属性。因此,我们可以通过链式调用的方式设置属性的值,并且生成的getter和setter方法的方法名不带get和set前缀。在Main方法中,我们创建了一个对象,并使用生成的setter方法设置属性的值。最后,打印该对象的age属性时,也没有指定是通过getter方法获取属性值。

public class AccessorsExample {private String myName;private int myAge;public AccessorsExample() {}public static void main(String[] args) {AccessorsExample example = (new AccessorsExample()).name("John").age(30);System.out.printf("Age" + example.age());}@Generatedpublic String toString() {return "AccessorsExample(myName=" + this.name() + ", myAge=" + this.age() + ")";}@Generatedpublic String name() {return this.myName;}@Generatedpublic int age() {return this.myAge;}@Generatedpublic AccessorsExample name(String myName) {this.myName = myName;return this;}@Generatedpublic AccessorsExample age(int myAge) {this.myAge = myAge;return this;}
}

运行结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/436670.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp框架中实现文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间

前言 uni-file-picker是uniapp中的一个文件选择器组件,用于选择本地文件并返回选择的文件路径或文件信息。该组件支持选择单个文件或多个文件,可以设置文件的类型、大小限制,并且可以进行文件预览。 提示:以下是本篇文章正文内容,下面案例可供参考 uni-file-picker组件具…

学习记录:js算法(五十):二叉树的右视图

文章目录 二叉树的右视图我的思路网上思路 总结 二叉树的右视图 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 图一: 示例 1:如图一 输入: [1,2,3,null,5,null,4] …

SigmaStudio控件Cross Mixer\Signal Merger算法效果分析

衰减与叠加混音算法验证分析一 CH2:输入源为-20dB正弦波1khz CH1叠加混音:参考混音算法https://blog.csdn.net/weixin_48408892/article/details/129878036?spm1001.2014.3001.5502 Ch0衰减混音:外部多个输入源做混音时,建议参考该算法控件&…

开源模型应用落地-模型微调-语料采集-数据标注(二)

一、前言 在自然语言处理(NLP)的快速发展中,语料采集作为基础性的步骤显得尤为重要。它不仅为机器学习模型提供了所需的训练数据,还直接影响模型的性能和泛化能力。随着数据驱动技术的不断进步,如何有效并高效地收集、清洗和整理丰富多样的语料,已成为研究者和工程师们亟…

PostgreSQL 17 发布了!非常稳定的版本

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…

数据管理_DM的实现

DataManager 的实现 DataManager 是数据库系统中的核心组件,负责管理底层数据的访问、修改和事务处理。它是 DM 层直接对外提供方法的类,用来对上层其他模块提供数据操作的API的,同时也实现了对 DataItem 对象的缓存管理。DataItem 存储的 key 是由页号…

Web认识 -- 第一课

文章目录 前言一、HTML是什么?二、了解Web1. 基本概念2.Web标准3. Web构成1.前端1. HTML2.CSS3. javaScript4.常见浏览器介绍 2.Web标签构成1.结构标准2.表现标准 -- css3. 行为标准 -- javaScript 总结 前言 这里是我们进入前端学习的开端,在本次更新之后我会陆续…

【智能算法应用】正余弦优化算法求解二维路径规划问题

摘要 正余弦优化算法(Sine Cosine Algorithm, SCA)是一种新颖的群体智能优化算法,能够有效地求解复杂的非线性问题。在本研究中,我们将SCA应用于二维路径规划问题,以找到从起点到终点的最优路径,同时避开障…

Python从入门到高手4.1节-掌握条件控制语句

目录 4.1.1 理解条件控制 4.1.2 if, elif, else 4.1.3 条件表达式 4.1.4 条件控制可以嵌套 4.1.5 if语句的三元运算 4.1.6 国庆节快乐 4.1.1 理解条件控制 在日常生活中,我们常喜欢说如果, "如果怎么样,那么就会怎么样"。"如果&qu…

【JVM】双亲委派模型

文章目录 双亲委派模型(面试高频)类加载器工作过程存在意义 双亲委派模型(面试高频) 之所以这个东西面试出场概率高高,最大的原因就是它起的名字很好听 描述了查找 .class 文件的策略。 类加载器 JVM 中进行类加载的…

使用容器启动的zk无法暴露3888问题解决

1. 问题描述 zk配置如下: 我通过容器启动了一个zk,通过-p 参数暴露了2181和3888端口,容器启动脚本如下: #!/bin/shdocker rm -f myzookeeper1docker run -p 12181:2181 -p 13888:3888 --name myzookeeper1 --restart always …

汽车零部件开发流程关键阶段

目录 1、定点阶段 1.1、定点前的准备工作 1.2、定点决策过程 1.3、定点后的工作交接 2、A样阶段:设计验证与基本功能实现 2.1、样件制作:从设计图纸到实物转化 2.2、功能测试:初步验证与性能评估 2.3、评估与优化:A样阶段…

【羊毛资源】华为云开发者云主机免费申请使用指南

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正! 如果对您有帮助,烦请点赞、关注、转发、订阅专栏! 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】(全…

Vue-Lecture1-Notes

渐进式框架 Vue 被称为“渐进式框架”,是因为它允许开发者根据项目的需求逐步引入和使用其功能,而不需要一次性使用整个框架。简单来说,Vue 提供了从简单到复杂的功能层次,可以灵活选择使用。 按需使用:Vue 的核心功能…

一次实践:给自己的手机摄像头进行相机标定

文章目录 1. 问题引入2. 准备工作2.1 标定场2.2 相机拍摄 3. 基本原理3.1 成像原理3.2 畸变校正 4. 标定解算4.1 代码实现4.2 详细解析4.2.1 解算实现4.2.2 提取点位 4.3 解算结果 5. 问题补充 1. 问题引入 不得不说,现在的计算机视觉技术已经发展到足够成熟的阶段…

简单vue指令实现 el-table 可拖拽表格功能

安装 SortableJS sorttableJs 相关优点如下: 相关配置项 参考 👉 SortableJS中文官网 pnpm i sortablejs封装成指令 不多逼逼,直接上才艺 🤪🤪🤪 先安装一个 nanoid 插件 用于生成随机id,注…

【STM32单片机_(HAL库)】4-3-4【定时器TIM】测量按键按下时间实现3

1.硬件 STM32单片机最小系统按键模块 2.软件 定时器HAL驱动层文件添加ic驱动文件添加GPIO常用函数定时器输入捕获实验配置步骤main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "uart1.h" #include &qu…

游戏修改器Cheat Engine CE v7.5修改版下载安装详细方法

Cheat Engine是一个专注于游戏的修改器。它可以用来扫描游戏中的内存,并允许修改它们。它还附带了调试器、反汇编器、汇编器、变速器、作弊器生成、Direct3D操作工具、系统检查工具等。 具体安装方法如下: 地址:Cheat Engine 7.5.zip 解压文件…

C++之String类(下)

片头 嗨喽~ 我们又见面啦,在上一篇C之String类(上)中,我们对string类的函数有了一个初步的认识,这一篇中,我们将继续学习string类的相关知识。准备好了吗?咱们开始咯~ 二、标准库中的string类 …

【MYSQL】授权远程连接的用户

文章目录 一、Navicat新建查询1.点击新建查询,授权远程连接的用户语句:2.刷新权限 二、Navicat用户 一、Navicat新建查询 1.点击新建查询,授权远程连接的用户语句: GRANT ALL PRIVILEGES ON *.* TO 库的用户名授权IP IDENTIFIED …