原因:Lombok与IDE生成getter/setter的命名规则不同
问题涉及Lombok的@Data注解生成getter/setter的命名规则与手动生成getter/setter的命名规则不
同,导致Jackson反序列化时无法正确匹配。
在Java中,根据JavaBean规范,getter/setter的命名规则如下:
-
对于布尔类型以外的属性,getter方法命名为“get”+属性名首字母大写,其余不变;setter方法命名为“set”+属性名首字母大写,其余不变。
-
对于布尔类型,getter方法可以是“is”+属性名首字母大写,其余不变。
但是,当属性名的前两个字母都是大写时,情况比较特殊。根据JavaBean规范,如果属性名的前
两个字母都是大写,则getter/setter方法中属性名保持不变(即不将首字母大写)。但实际上,不
同的工具和框架在处理时可能有差异。
具体到用户的代码中,属性名为“sTimeS”,这是一个前两个字母都是大写的例子(第一个字母's',
第二个字母'T',但注意属性名是“sTimeS”,所以第二个字母是'T',是大写)。根据Lombok的规
则,对于这种属性,它生成的getter/setter是:
-
getter:
getSTimeS()(即首字母大写,但注意属性名第一个字母是's',第二个字母'T',所以Lombok会将整个属性名首字母大写,变成“STimeS”)
订阅专栏 解锁全文
202



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



