lombok get/set 與 JavaBean get/set
lombok get/set 與 JavaBean get/set
javaBean get/set 命名規範
一般JavaBean屬性對應的 get/set 方法,是get/set 加上屬性名首字母大寫。
private String courseId;
public String getCourseId() {
return courseId;
}
public void setCourseId(String courseId) {
this.courseId = courseId;
}
但是仍有例外
1.屬性名第一個字母小寫,第二個字母大寫。
private String cId;
public String getcId() {
return cId;
}
public void setcId(String cId) {
this.cId = cId;
}
2.屬性名第一個字母為大寫。
private String Url;
public String getUrl() {
return Url;
}
public void setUrl(String url) {
Url = url;
}
3.屬性名以is 開頭,並且屬性型別為boolean
private boolean isOk;
public boolean isOk() {
return isOk;
}
public void setOk(boolean ok) {
isOk = ok;
}
lombok 與 javaBean 命名規範 特殊情況對比
// lombok 自動生產 get/set
@Getter
@Setter
public class Demo1 {
private String cId;
private String URL;
private boolean isSuccess;
}
// JavaBean get/set
public class Demo2 {
private String cId;
private String URL;
private boolean isSuccess;
public String getcId() {
return cId;
}
public void setcId(String cId) {
this.cId = cId;
}
public String getURL() {
return URL;
}
public void setURL(String URL) {
this.URL = URL;
}
public boolean isSuccess() {
return isSuccess;
}
public void setSuccess(boolean success) {
isSuccess = success;
}
}
// lombok
Demo1 demo1 = new Demo1();
//JavaBean
Demo2 demo2 = new Demo2();
// 屬性名第一個字母小寫,第二個字母大寫
// JavaBean get/set 後部分, 屬性名大小寫不變
// lombok get/set 後部分,屬性名首字母大寫
demo1.setCId("");
demo2.setcId("");
demo1.getCId();
demo2.getcId();
demo1.setURL("");
demo2.setURL("");
demo1.getURL();
demo2.getURL();
demo1.setSuccess(true);
demo2.setSuccess(true);
demo1.isSuccess();
demo2.isSuccess();
總結
總結髮現三種特殊情況下,如果使用 lombok 自動生成 get/set 時,第一種情況會導致生成get/set 不符合 JavaBean get/set 規範。此時會導致 json序列化,反射等情況,獲取資料失敗的情況發生。
使用 lombok 減少程式碼冗餘的時候,請注意程式碼的規範。
相關文章
- Lombok生成get/set異常問題(Lombok缺陷)Lombok
- IDEA不使用lombok,如何快速生成get和set方法IdeaLombok
- python:get和setPython
- 淺說 get set
- C# Get SetC#
- 快速生成get、set方法
- 私有屬性的Get Set 與 Public
- 初學 PHP __set ( ) 和 __ get ( )PHP
- Redis中PipeLine使用(二)---批量get與批量setRedis
- JavaScript get set 訪問器屬性JavaScript
- idea中引入lombok外掛後編譯時實體bean無get/set方法IdeaLombok編譯Bean
- 原型鏈上的get與set訪問器屬性原型
- python的__get__、__set__、__delete__(1)Pythondelete
- java反射呼叫set和get方法的通用類Java反射
- Vue之computed(計算屬性)詳解get()、set()Vue
- [20190522]How to get dump or list parameters set at session level.txtSession
- 封裝中的get、set方法-學習筆記封裝筆記
- vue3計算屬性的可寫屬性 set 與 getVue
- 搞定 Redis 資料儲存原理,別隻會 set、get 了Redis
- 【JavaSE】淺談TreadLocal,TreadLocal的常用方法set()、get()、remove()原始碼分析JavaREM原始碼
- Bean類自動生成判斷null值的Set()和Get()方法BeanNull
- C#中類的屬性訪問器--get和set分析C#
- 證明:ThreadLocal的get,set方法無法防止記憶體洩漏thread記憶體
- Idea實體類上加@Data註解但get/set方法不生效Idea
- VS CODE PHP 有什麼外掛可以生成 get-set 方法的嗎?PHP
- 淺談對屬性描述符__get__、__set__、__delete__的理解delete
- Vue.set與vue.$set的使用Vue
- JavaScript Set與WeakSetJavaScript
- 解放雙手,自動生成“x.set(y.get)”,搞定vo2dto轉換
- set /?
- Set
- GET與POST區別
- es6-Set與Map
- [Javascript] Perform Set Operations using JavaScript Set MethodsJavaScriptORM
- post與get的區別
- GET 與 POST 的區別
- get與post的區別?
- 014、Vue3+TypeScript基礎,computed計算屬性中使用get和set方法來讀取和修改VueTypeScript