Lombok生成的Getter和Setter的名称对于“eMail”或“xAxis”等属性存在大小写转换异常

问题

最新开发中,遇到一个字段映射问题。我们先看问题案例:

明明代码中第二个字母是大写,结果测试接口时发现变成了小写字母。

分析

通过网上查询发现,这属于Lombok的bug。而且早在2015年就有人在GitHub上提出了issues。

Names of Getters and Setters generated by Lombok are buggy for attributes like "eMail" or "aValue" etc · Issue #757 · projectlombok/lombok · GitHubMigrated from Google Code (issue 722)https://github.com/projectlombok/lombok/issues/757究其原因,这可能是Json序列化对象后,使用Lombok后属性xAxis大写变成小写xaxis。

通过线下自己测试发现,只要是第二个字母是大写的,都会被自动转换为小写。

例如 aEmail、xValue、sFool等等。

解决办法

既然是Lombok自动生成出的bug,那么我们就自己重写getter、setter方法。当然你不用所有的都重写,只重写该问题字段就可以了。不过我建议,既然都要重写了那干脆都重写。

重写之后你会发现set、get后面的字母也变成小写了,正常我们set、get后面都是大写的。

这个你不用管,让它生成就好了。最终测试时发现显示就正常了。

至于最新版的Lombok有没有修复这个问题,我还没有测试。

如果你也遇到这个问题,不妨重写getter、setter方法试试。

猜你喜欢

转载自blog.csdn.net/YuanFudao/article/details/132403052