lombok get/set 與 JavaBean get/set

weixin_33935777發表於2018-10-10

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 減少程式碼冗餘的時候,請注意程式碼的規範。

相關文章