一、有些情况Get/Set方法与Idea生成的不一样
当实体类字段名第一个字母为小写,第二个字母大写时,例如:tId,会导致lombok的Get/Set方法与Idea生成的不一样。
lombok:
public Integer getTId()
public void seTId(Integer tId)
Idea:
public Integer gettId()
public void settId(Integer tId)
可以看到lombok把第一个字母T大写了,很标准!
但是使用Idea生成的第一个字母为小写的t,就很奇怪,但是Idea为什么要这么生成呢?
原因是使用有些工具时,例如SpringBoot的Jackson,它生成和解析时会用到Get/Set方法,它生成时会找到实体类的gettId方法,然后从左至右将大写字母小写化,知道遇到小写字母停止,这样就截取到了需要生成的字段tId。如果是使用的lombok,它会得到tid,两者的i一个是大写一个是小写,而我们需要的肯定是大写的,所以这就是为什么Idea出现这种情况时要生成这种不标准的Get/Set方法。
文章讨论了Lombok与IntelliJIDEA在生成Get和Set方法时的不同,因Lombok首字母大写规则导致与IDEA默认小写规则冲突。IDEA为兼容工具如SpringBoot的Jackson,采用特殊策略生成非标准的Getters,以适应不同场景的需求。

3469

被折叠的 条评论
为什么被折叠?



