日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

后台返回给前端json字段的大小写问题,Lombok的坑@Data,@Getter

發(fā)布時(shí)間:2025/3/12 HTML 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 后台返回给前端json字段的大小写问题,Lombok的坑@Data,@Getter 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Lombok的@Data注解踩坑,@Setter的大小寫問題

以前在處理前端請求的實(shí)體類的時(shí)候,都是用Lombok的@Data注解對實(shí)體類進(jìn)行g(shù)etter、setter以及toString的聲名,今天處理實(shí)體類的時(shí)候,發(fā)現(xiàn)生成的setter方法和Java Bean的命名規(guī)則不一致。(@Data的作用是為我們定義的字段添加Lombok的@ToString、@EqualsAndHashCode、 @Getter方法、@RequiredArgsConstructor 和 為非final字段添加@Setter)

我要生成getter、setter的字段是:

private List<Map<String,String>> yAxis;private List<XAxis> xAxis;

在我使用@Data時(shí)生成的代碼和實(shí)際要生成的代碼比較如下:

//@Data生成的setter方法 setYAxis() setXAxis() //實(shí)際需要的setter方法 setyAxis() setxAxis()

Java Bean的4種命名特殊規(guī)范中有一種情況:如果屬性名的第二個(gè)字母大寫,那么該屬性名直接用作 getter/setter 方法中 get/set 的后部分,就是說大小寫不變。例如屬性名為uName,方法是getuName/setuName。

字段的首字母大小寫發(fā)生了變化。這個(gè)變化意味著,我在使用@Data注解生成的getter方法得到的屬性值是"yaxis"和"xaxis",而實(shí)際上我需要的屬性值為"yAxis"和"xAxis",這也就導(dǎo)致了我返回給前端的數(shù)據(jù),前端無法識別,從而出錯。

JavaBean getter/setter命名規(guī)范[特例]

一般JavaBean屬性以小寫字母開頭,駝峰命名格式,相應(yīng)的 getter/setter 方法是 get/set 接上首字母大寫的屬性名。例如:屬性名為userName,其對應(yīng)的getter/setter 方法是 getUserName/setUserName。

但是,還有一些特殊情況:

  • 如果屬性名的第二個(gè)字母大寫,那么該屬性名直接用作 getter/setter 方法中 get/set 的后部分,就是說大小寫不變。例如屬性名為uName,方法是getuName/setuName。

  • 如果屬性名的前兩個(gè)字母是大寫(一般的專有名詞和縮略詞都會大寫),也是屬性名直接用作 getter/setter 方法中 get/set 的后部分。例如屬性名為URL,方法是getURL/setURL。

  • 如果屬性名的首字母大寫,也是屬性名直接用作 getter/setter 方法中 get/set 的后部分。例如屬性名為Name,方法是getName/setName,這種是最糟糕的情況,會找不到屬性出錯,因?yàn)槟J(rèn)的屬性名是name。

  • 如果屬性名以"is"開頭,則getter方法會省掉get,set方法會去掉is。例如屬性名為isOK,方法是isOK/setOK。
    需要注意的是有些開發(fā)工具自動生成的getter/setter方法,并沒有考慮到上面所說的特例情況,會導(dǎo)致bug的產(chǎn)生。

  • 我們在定義JavaBean的屬性名時(shí),應(yīng)該盡量避免屬性名的頭兩個(gè)字母中任意一個(gè)為大寫以及屬性名以"is"開頭。

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的后台返回给前端json字段的大小写问题,Lombok的坑@Data,@Getter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。