Lombok的@Data注解踩坑,@Setter的大小写问题
以前在处理前端请求的实体类的时候,都是用Lombok的@Data注解对实体类进行getter、setter以及toString的声名,今天处理实体类的时候,发现生成的setter方法和Java Bean的命名规则不一致。(@Data的作用是为我们定义的字段添加Lombok的@ToString、@EqualsAndHashCode、 @Getter方法、@RequiredArgsConstructor 和 为非final字段添加@Setter)
我要生成getter、setter的字段是:
private List<Map<String,String>> yAxis;
private List<XAxis> xAxis;
在我使用@Data时生成的代码和实际要生成的代码比较如下:
//@Data生成的setter方法
setYAxis() setXAxis()
//实际需要的setter方法
setyAxis() setxAxis()
Java Bean的4种命名特殊规范中有一种情况:如果属性名的第二个字母大写,那么该属性名直接用作 getter/setter 方法中 get/set 的后部分,就是说大小写不变。例如属性名为uName,方法是getuName/setuName。(转载于:http://blog.csdn.net/zhangzeyuaaa/article/details/46649061)
字段的首字母大小写发生了变化。这个变化意味着,我在使用@Data注解生成的getter方法得到的属性值是"yaxis"和"xaxis",而实际上我需要的属性值为"yAxis"和"xAxis",这也就导致了我返回给前端的数据,前端无法识别,从而出错。
以上就是我这次所遇到的问题,作为一枚小白,这些纯属个人理解,不足之处,还请大家多多指教。
版权声明:本文为sssimo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。