【问题处理】—— lombok 的 @Data 大小写区分不敏感

问题描述

今天在项目本地编译的时候,发现有个很奇怪的问题,一直提示某位置找不到符号,
【问题处理】—— lombok 的 @Data 大小写区分不敏感_第1张图片
但是实际在Idea中显示确实正常的,一开始以为又是IDEA的故障,所以重启了IDEA,并执行了mvn clean然后重新编译。但是问题并没有得到解决
【问题处理】—— lombok 的 @Data 大小写区分不敏感_第2张图片


原因分析:

这段代码最近没人改动过,所以很疑惑,所以点进了对应的类中,发现昨日有人提交了一个新字段,而且与一个原有字段非常像,只有一个字母大小写的问题,难道加字段加出的问题?
【问题处理】—— lombok 的 @Data 大小写区分不敏感_第3张图片

因为这个类使用的@Data注解,根据以往的经验,我感觉可能是lombok在处理类似字段时出现了问题,并没有为第二个字段创建get set方法,于是我自己建了个类,并对其编译生成的类反编译。

【问题处理】—— lombok 的 @Data 大小写区分不敏感_第4张图片

果然,只有第一个字段创建了get set方法,第二个字段完全被忽略了

【问题处理】—— lombok 的 @Data 大小写区分不敏感_第5张图片

那么问题的原因已经定位到了,其实就是 lombok 的一个bug,就在我准备去github上提bug的时候,发现其实很早就有人提过了,如下图:

【问题处理】—— lombok 的 @Data 大小写区分不敏感_第6张图片

而当时开发者则认为这不是bug,而是根本就不该在一个类里出现这么两个只有大小写不同的字段,随即关闭了这个问题

【问题处理】—— lombok 的 @Data 大小写区分不敏感_第7张图片

作者这么说其实问题也不大,编程本身就是有很多规范,框架基于规范配合,如果你没有严格遵守规范导致的Bug,不给修复也属于正常


解决方案:

手写get set方法即可包治百病,直接使用Idea 帮我们生成
【问题处理】—— lombok 的 @Data 大小写区分不敏感_第8张图片
【问题处理】—— lombok 的 @Data 大小写区分不敏感_第9张图片
把@Data注解去掉后再编译一遍,发现就编译恢复正常了
【问题处理】—— lombok 的 @Data 大小写区分不敏感_第10张图片
【问题处理】—— lombok 的 @Data 大小写区分不敏感_第11张图片

你可能感兴趣的:(实战问题解决,intellij-idea,java,ide,lombok,大小写)