后台返回给前端json字段的大小写问题,Lombok的坑@Data,@Getter

Lombok的@Data注解踩坑,@Setter的大小写问题

以前在处理前端请求的实体类的时候,都是用Lombok的@Data注解对实体类进行getter、setter以及toString的声名,今天处理实体类的时候,发现生成的setter方法和Java Bean的命名规则不一致。(@Data的作用是为我们定义的字段添加Lombok的@ToString、@EqualsAndHashCode、 @Getter方法、@RequiredArgsConstructor 和 为非final字段添加@Setter)

我要生成getter、setter的字段是:

    private List<Map<String,String>> yAxis;private List<XAxis> xAxis;

在我使用@Data时生成的代码和实际要生成的代码比较如下:

//@Data生成的setter方法
setYAxis()  setXAxis()
//实际需要的setter方法
setyAxis()  setxAxis()

Java Bean的4种命名特殊规范中有一种情况:如果属性名的第二个字母大写,那么该属性名直接用作 getter/setter 方法中 get/set 的后部分,就是说大小写不变。例如属性名为uName,方法是getuName/setuName。

字段的首字母大小写发生了变化。这个变化意味着,我在使用@Data注解生成的getter方法得到的属性值是"yaxis"和"xaxis",而实际上我需要的属性值为"yAxis"和"xAxis",这也就导致了我返回给前端的数据,前端无法识别,从而出错。

JavaBean getter/setter命名规范[特例]

一般JavaBean属性以小写字母开头,驼峰命名格式,相应的 getter/setter 方法是 get/set 接上首字母大写的属性名。例如:属性名为userName,其对应的getter/setter 方法是 getUserName/setUserName。

但是,还有一些特殊情况:

  1. 如果属性名的第二个字母大写,那么该属性名直接用作 getter/setter 方法中 get/set 的后部分,就是说大小写不变。例如属性名为uName,方法是getuName/setuName。

  2. 如果属性名的前两个字母是大写(一般的专有名词和缩略词都会大写),也是属性名直接用作 getter/setter 方法中 get/set 的后部分。例如属性名为URL,方法是getURL/setURL。

  3. 如果属性名的首字母大写,也是属性名直接用作 getter/setter 方法中 get/set 的后部分。例如属性名为Name,方法是getName/setName,这种是最糟糕的情况,会找不到属性出错,因为默认的属性名是name。

  4. 如果属性名以"is"开头,则getter方法会省掉get,set方法会去掉is。例如属性名为isOK,方法是isOK/setOK。
    需要注意的是有些开发工具自动生成的getter/setter方法,并没有考虑到上面所说的特例情况,会导致bug的产生。

我们在定义JavaBean的属性名时,应该尽量避免属性名的头两个字母中任意一个为大写以及属性名以"is"开头。

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

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

相关文章

bootstrap 滚动 进度条_bootstrap动态进度条怎么搞

在本教程中&#xff0c;您将看到如何使用 Bootstrap 创建加载、重定向或动作状态的进度条。Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果。Internet Explorer 9 及之前的版本和旧版的 Firefox 不支持该特性&#xff0c;Opera 12 不支持动画。(推荐学习&#xff1a;Bootst…

北交大计算机学院复试经验,2014考研复试:过来人考研复试经验谈-北交大计算机系...

从初试到复试&#xff0c;每个经历了这段磨砺过程的人&#xff0c;都不愿意输在最后一个环节——复试。我根据自己的复试经历&#xff0c;在大家复试之前&#xff0c;写下这篇文章&#xff0c;提供以下几点建议&#xff0c;希望对报考北京交通大学计算机专业的考生们有所帮助。…

Java实现文件写入——IO流(输入输出流详解)

输入输出的重要性&#xff1a; 输入和输出功能是Java对程序处理数据能力的提高&#xff0c;Java以流的形式处理数据。流是一组有序的数据序列&#xff0c;根据操作的类型&#xff0c;分为输入流和输出流。 程序从输入流读取数据&#xff0c;向输出流写入数据。Java是面向对象…

k2698场效应管参数电流_mos管特性曲线-电流方程与参数详解

mos管特性曲线-电流方程与参数详解mos管本文主要讲N沟道增强型mos管特性曲线、电流方程及参数MOS管是金属-氧化物半导体场效应晶体管&#xff0c;简称金氧半场效晶体管。一般是金属(metal)—氧化物(oxide)—半导体(semiconductor)场效应晶体管&#xff0c;或者称是金属—绝缘体…

江西事业单位计算机管理岗怎么样,江西省直事业单位招聘出现不少冷门岗

央广网江西频道10月19日消息 10月17日&#xff0c;江西省公布下半年事业单位招考因报名人数达不到开考比例而取消的岗位&#xff0c;此次一共有317个岗位取消&#xff0c;涉及取消招考366人。记者发现&#xff0c;大部分因“冷门”取消的岗位&#xff0c;都是地质等基层艰苦岗位…

Java中String转Long方式及注意事项

字符串转Long: Long.ValueOf(String); 返回Long包装类Long.parseLong(String); 返回long基本数据类型注意事项&#xff1a; 1.字符串内不能包含除数字之外的字符 不然会报错&#xff0c;java.lang.NumberFormatException 2.字符串长度要限制&#xff0c;不然也会出错 比如&…

base64解密后乱码_血泪教训!记一个JavaMail 附件乱码的问题

说到乱码&#xff0c;很多人都遇到过&#xff0c;“哎呀&#xff0c;你这个编码是不是UTF-8&#xff01;”&#xff0c;“你这个会不会操作系统不一致导致的&#xff1f;”&#xff0c;“肯定是两边编码不一致”。不过我们今天说的问题&#xff0c;还真不是这个问题导致的。问题…

开发中常见的@NotNull,@NotBlank,@NotEmpty注解的区别

NotEmpty,NotNull和NotBlank的区别 NotEmpty :不能为null&#xff0c;且Size>0 NotNull:不能为null&#xff0c;但可以为empty,没有Size的约束 NotBlank:只用于String,不能为null且trim()之后size>0 org.apache.commons.lang.StringUtils类提供了String的常用操作,最…

最新电脑版二级计算机视频怎么打开,电脑版钉钉如何打开视频会议中录制的视频...

电脑版钉钉如何打开视频会议中录制的视频腾讯视频/爱奇艺/优酷/外卖 充值4折起电脑版钉钉软件被很多人使用&#xff0c;用来学习或者工作&#xff0c;想要聚集一些人讨论问题&#xff0c;因此会开视频会议&#xff0c;那么为了能够后期看视频会议&#xff0c;因此会选择录制视频…

POI 单元格类型CellType

1. 单元格类型 单元格的内容决定了单元格的类型&#xff0c;POI中定义的7种单元格类型&#xff1a; 日期数据对应的单元格类型是CellType.NUMERIC&#xff0c;默认以浮点型数显示&#xff0c;显示为日期格式需要设置单元格样式DataFormat字符型单元格内容也可以为富文本Ric…

extjs 渲染之前的方法_Unity通用渲染管线(URP)系列(十一)——后处理(Bloom)...

200篇教程总入口&#xff0c;欢迎收藏&#xff1a;放牛的星星&#xff1a;[教程汇总持续更新]Unity从入门到入坟——收藏这一篇就够了​zhuanlan.zhihu.com本文重点内容&#xff1a;1、创建简单的post-FX栈2、修改渲染后的图像3、需要的时候完成后处理的呈现4、制作Bloom的效果…

服务器需要指定dns吗,Windows Server2012 安装配置DNS服务器方法详解

在云服务器 Windows Server2012 上安装配置DNS服务器方法&#xff0c;安装与配置非常简单&#xff0c;在这里写个完整教程方便大家查询一、安装DNS服务器1.打开服务器管理器&#xff0c;点击添加角色和功能2.一直下一步&#xff0c;选择基于角色或基于功能的安装3.选择目标服务…

SVN提交时出现locked错误解决办法

问题&#xff1a;在SVN中执行 commit 操作时&#xff0c;在更新过程中&#xff0c;中断过&#xff0c;或者因为其他原因导致SVN 出现 locked 异常。 解决方法&#xff1a; 回到SVN文件夹的根目录。如图操作&#xff1a; 点击ok就好了。

windows7系统做文件服务器拒绝,Win7提示qq服务器拒绝了您发送离线文件

腾讯QQ功能强大&#xff0c;语音、视频、传输文件等&#xff0c;很多人都喜欢通过qq给朋友或同事发送文件&#xff0c;即使人不在也可以接收离线文件&#xff0c;随时都可以接收。但是有win7用户发送离线文件时提示“服务器拒绝了您发送离线文件”&#xff0c;该如何解决此问题…

.net bitmap rgb数据_Python商务与经济统计学-数据描述

案例2-1、3-1 Pelican 商店本案例之中主要涉及到Pandas和pyecharts的一些功能&#xff0c;比如利用pandas进行数据筛选&#xff0c;百分比频数统计&#xff0c;将数据进行分组&#xff0c;分组统计&#xff0c;相关性分析等。另外还涉及到了pyecharts的饼图&#xff0c;直方图&…

qq服务器只保留7天文件吗,qq离线文件服务器上的离线文件能保留几天(一般7天)?...

相信大家都用过qq离线文件功能来跟好友发送离线文件。因为当对方不在线的时候也是可以使用发送离线文件功能。那么在我们发送的qq离线文件服务器上的离线文件能保留几天&#xff1f;因为我们发送的qq离线文件会自动保存在离线文件。它是有一定的时间期限。如果没有期限的话&…

get请求,参数值为json字符串如何传值

例如:http://localhost:8080/test?contentjson字符串&#xff0c;json字符串为{“name”:“xzp”}&#xff0c;因为{}在url会被转义&#xff0c;{要改为%7b&#xff0c;}要改为%7d&#xff0c;最终的效果是&#xff1a; http://localhost:8080/test?content%7b"name&qu…

失败的人生图片_人到中年,做事失败了,很可能是遇到了以下五种情况

人至中年&#xff0c;也到了迈入成功大门的时刻&#xff0c;但并非每个人都能在中年获得成功&#xff0c;相反&#xff0c;有不少人却在中年的时候失败。人至中年面临失败&#xff0c;其实原因有很多&#xff0c;但大多数情况下&#xff0c;可能是遇到了以下五种情况。究竟有哪…

Idea的debug断点调试

关于Idea的debug模式下线程断点的总结&#xff1a; 断点介绍&#xff1a; 如图所示&#xff0c;断点可以为所有断点和线程断点&#xff0c;每种断点还可以设置条件&#xff0c;条件满足时才会进入该断点。 1.当设置为All的时候 点击下发的下拉框&#xff0c;可以看到此时拦截…

ajax 传字符串到后台,JSON.stringify()将JSON对象转换为字符串通过Ajax传入到后台处理...

搜索热词最近在做一个小小的功能模块&#xff0c;前台有很多的数据需要传入到后台&#xff0c;前台页面设计如下&#xff1a;看起来不是很清楚&#xff0c;总之表单中的数据都要提交到后台进行处理&#xff0c;然后插入到数据库&#xff0c;而且是一起提交到后台的&#xff0c;…