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。或者大神們給出更好用的方案。


分享到:


相關文章: