今天同事做項(xiàng)目時(shí)候,用Postman測(cè)試接口挣饥,結(jié)果只有一個(gè)屬性有值另一個(gè)為null除师,但是確實(shí)是傳入了,仔細(xì)對(duì)照也沒(méi)有發(fā)現(xiàn)拼寫(xiě)上的錯(cuò)誤扔枫,這時(shí)候找到了我汛聚,我一開(kāi)始以為傳入錯(cuò)誤參數(shù)所以沒(méi)獲取到,但是自己回到座位也寫(xiě)了一個(gè)Demo試了下茧吊,確實(shí)沒(méi)有值贞岭,然后就開(kāi)始谷歌什么問(wèn)題,搜索Postman的json傳參問(wèn)題搓侄,但是怎么搜索瞄桨,都沒(méi)有想要的答案,就開(kāi)始從新分析讶踪,前臺(tái)傳入?yún)?shù)后臺(tái)接收參數(shù)芯侥,一共是分為兩個(gè)步驟的,一個(gè)是通過(guò)json格式傳入,第二部分就是后臺(tái)接收到j(luò)son字符串將字符串轉(zhuǎn)換成對(duì)象并通過(guò)setter方法賦值柱查,這樣才得到完整的數(shù)據(jù)廓俭,既然postman沒(méi)有問(wèn)題,傳入的參數(shù)也沒(méi)有問(wèn)題唉工,那么為null只有setter方法賦值出問(wèn)題了研乒,而且他這個(gè)屬性名也很特殊,是第一個(gè)字母小寫(xiě)淋硝,第二個(gè)字母大寫(xiě)雹熬,我就從谷歌搜索屬性賦值相關(guān)資料,果然發(fā)現(xiàn)了原因谣膳。
JavaBean的set和get規(guī)范:
1.第二個(gè)字母為大寫(xiě)的屬性名要區(qū)別對(duì)待竿报。如果屬性名的第二個(gè)字母是大寫(xiě)的,那么該屬性名直接用作 getter/setter 方法中 get/set 的后部分继谚,就是說(shuō)大小寫(xiě)不變烈菌。
2.屬性是首字母大寫(xiě),次字母小寫(xiě)是花履,你永遠(yuǎn)都找不到它的 getter/setter 方法的
3.對(duì)于 boolean 類型屬性的 getter 方法是 isXxx() 還是 getXxx() 就自己決定了芽世,isXxx() 應(yīng)該更接近于自然語(yǔ)言,更順溜些
image.png
針對(duì)屬性名的形式為第一個(gè)字母為小寫(xiě)臭挽,第二個(gè)字母為大寫(xiě)的情況捂襟,Lombok所生成的getter、setter錯(cuò)誤欢峰。
例如:
String aBc;
這個(gè)屬性正確的getter葬荷、setter方法為:
public void setaBc(String aBc){……
public String getaBc(){……
但是Lombok所生成getter、setter方法為:
public void setABc(String aBc){……
public String getABc(String aBc){……
這樣的結(jié)果會(huì)導(dǎo)致使用像Spring時(shí)會(huì)導(dǎo)致注入失敗