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
- 解除get/set束縛的神器,Lombok的使用Lombok
- C# Get SetC#
- 淺說 get set
- PHP memcached,(set,get)PHP
- IDEA不使用lombok,如何快速生成get和set方法IdeaLombok
- python:get和setPython
- 快速生成get、set方法
- 私有屬性的Get Set 與 Public
- 初學 PHP __set ( ) 和 __ get ( )PHP
- cassandra get set同步問題
- javascript get和set訪問器JavaScript
- python set和get實現Python
- How to get and set the system socket buffer in AIXAI
- JavaScript get set 訪問器屬性JavaScript
- Get Set Up to Help With Python Core DevelopmentPythondev
- Swift 成員變數的get/setSwift變數
- idea中引入lombok外掛後編譯時實體bean無get/set方法IdeaLombok編譯Bean
- Redis中PipeLine使用(二)---批量get與批量setRedis
- 原型鏈上的get與set訪問器屬性原型
- PHP 分散式memcached伺服器 set,getPHP分散式伺服器
- 分類不能自動建立 get set 方法
- Objective-C中get/set方法初探(1)Object
- Objective-C中get/set方法初探(2)Object
- python的__get__、__set__、__delete__(1)Pythondelete
- java反射呼叫set和get方法的通用類Java反射
- 修改自動生成get/set方法模板程式碼
- 封裝中的get、set方法-學習筆記封裝筆記
- vue3計算屬性的可寫屬性 set 與 getVue
- Vue之computed(計算屬性)詳解get()、set()Vue
- c#物件導向中的get和set的用法C#物件
- javascript 物件屬性的get set訪問器寫法JavaScript物件
- 搞定 Redis 資料儲存原理,別隻會 set、get 了Redis
- ORA-30926: unable to get a stable set of rows in the source tables
- C#中類的屬性訪問器--get和set分析C#
- Bean類自動生成判斷null值的Set()和Get()方法BeanNull
- Android Studio如何快速生成get,set,tostring,建構函式Android函式
- 證明:ThreadLocal的get,set方法無法防止記憶體洩漏thread記憶體