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

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

问题描述

今天在项目本地编译的时候,发现有个很奇怪的问题,一直提示某位置找不到符号,
在这里插入图片描述
但是实际在Idea中显示确实正常的,一开始以为又是IDEA的故障,所以重启了IDEA,并执行了mvn clean然后重新编译。但是问题并没有得到解决
在这里插入图片描述


原因分析:

这段代码最近没人改动过,所以很疑惑,所以点进了对应的类中,发现昨日有人提交了一个新字段,而且与一个原有字段非常像,只有一个字母大小写的问题,难道加字段加出的问题?
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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


解决方案:

手写get set方法即可包治百病,直接使用Idea 帮我们生成
在这里插入图片描述
在这里插入图片描述
把@Data注解去掉后再编译一遍,发现就编译恢复正常了
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/259901.html

相关文章:

  • 跟着我学Python基础篇:08.集合和字典
  • Tomcat部署(图片和HTML等)静态资源时遇到的问题
  • 在接触新的游戏引擎的时候,如何能快速地熟悉并开发出一款新游戏?
  • 计网 - TCP四次挥手原理全曝光:深度解析与实战演示
  • 个人养老金知多少?
  • gpt3、gpt2与gpt1区别
  • PyQt6 QDateEdit日期控件
  • 【无线网络技术】——无线城域网(学习笔记)
  • RK3568平台 OTA升级原理
  • mysql迁移步骤
  • 计算机网络应用层(期末、考研)
  • Jenkins离线安装部署教程简记
  • 如果一个嵌套类需要在单个方法之外仍然是可见,或者它太长,不适合放在方法内部,就应该使用成员类。
  • Vue3 中的 Proxy--读懂ES6中的Proxy
  • zk_dubbo
  • Windows 安全基础——NetBIOS篇
  • 【基础知识】Hadoop生态系统
  • [Linux] LAMP架构
  • HPM5300系列--第二篇 Visual Studio Code开发环境以及多种调试器调试模式
  • LeetCode2697. Lexicographically Smallest Palindrome
  • Leetcode 40 组合总和 II
  • 智慧灯杆技术应用分析
  • 手动搭建koa+ts项目框架(ts项目实现开发阶段实时查看)
  • 在Nexus上配置Docker镜像仓库
  • 深入理解C语言的函数参数
  • 【C++】策略模式
  • 什么时候使用匿名类,匿名类解决了什么问题?为什么需要匿名类 ?
  • 怎么让gpt帮忙改文章 (1) 快码论文
  • Android源码下载流程
  • ArrayList与顺序表(带完整实例)