Java Lombok一些坑,欢迎评论补充

作为java开发者,我们大部分都使用过lombok插件。这个插件只需要一个@Data注解,就可以解决get和set的代码。但这个也带来一堆坑。

1、返回结果大小写问题,场景:在向前端提示api的时候返回类中本应是大写的字母结果变成了小写。

<code>@Data

private List<string> legendData;
private List<seriesdatavo> seriesData;
private List<string> xAxisData;

}/<string>/<seriesdatavo>/<string>/<code>

2、以上代码在Controler返回给用户的时候

<code>{"legendData":[],"seriesData":[],"xaxisData":[]}

请注意 “xaxisData” 这个参数,明显不是我们想要返回的结果,理想状态是应该返回 “xAxisData”/<code>

3、原因(其实还是命名规范)

<code>javabean生成规则:
1、除去get或者is(如果是boolean类型)后的部分首字母转成小写即可,比如:getFoo –> foo
2、除去get和is后端的部分,首字母和第二个字母大写,不作转换即可,比如:getXPath –> XPath/<code>

4、解决方案 (强制指定)

<code>@Data
public class TestVo {

private List<string> legendData;
private List<seriesdatavo> seriesData;
private List<string> xAxisData;

public List<string> getxAxisData() {
return xAxisData;
}

public void setxAxisData(List<string> xAxisData) {
this.xAxisData = xAxisData;
}
}/<string>/<string>/<string>/<seriesdatavo>/<string>/<code>

5、其它

<code>bool 类型 不加 isXXXX
使用了@Data 就减少继承
显式使用@EqualsAndHashCode(callSuper = true)
使用了@Data equals() 会有坑/<code>

6、讨论:那么大家是使用Lombok插件呢?还是Idea一键生成Get和Set。或者大神们给出更好用的方案。


分享到:


相關文章: