Lombok 介紹 消除Java的冗長
Lombok 是一種 Java工具 + 生產力,可用來協助開發人員消除Java的冗長,尤其是對於簡單的Java對象(POJO)。
它通過注釋實現這一目的。一個標準的Java bean 一般具有若干屬性,每個屬性具有getter()和setter()方法,
通常還會有一個toString() 方法、一個 equals() 方法和一個 hashCode() 方法。這樣一來,代碼就顯得冗餘。
安裝 Lombok
使用Lombok 首先要進行安裝,本例介紹 myeclipse 的安裝方法,首先官網下載 lombok.jar
將 lombok.jar 複製到 myeclipse.ini / eclipse.ini 所在的檔案夾目錄下
開啟 myeclipse.ini / eclipse.ini,在最後加上以下兩行並儲存:
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
重啟 myeclipse / eclipse 即可
使用 Lombok
現在,就可以在 IDE 中使用Lombok了,看以下代碼:
public class User { private String username; private String password; private int age;}
以上是一個簡單的 Java bean 的典型開始。可以為每個屬性添加 getters 和 setters。
然後再添加一個 equals() 方法、一個 toString() 方法和一個 hashCode() 方法。
有了 Lombok,無需自己完成上述操作。相反,只需添加一個注釋:@Data。
@Datapublic class User { private String username; private String password; private int age;}
Lombok 註解
Lombok 註解可參看 協助文檔
下面介紹幾個常用的 lombok 註解
@Data :註解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法
@Setter:註解在屬性上;為屬性提供 setting 方法
@Getter:註解在屬性上;為屬性提供 getting 方法
@Log4j :註解在類上;為類提供一個 屬性名稱為log 的 log4j 日誌對象
@NoArgsConstructor:註解在類上;為類提供一個無參的構造方法
@AllArgsConstructor:註解在類上;為類提供一個全參的構造方法
當使用註解的時候,我們看看Lombok到底幹了些什麼
public class User { private @Getter @Setter String username; private @Getter @Setter String password; private @Getter @Setter int age;}
甚至可以這樣寫:
@Datapublic class User { private String username; private String password; private int age;}
可以看出,在編譯期,Lombok根據所寫的annotation,為所有屬性加上了getter setter,甚至是hashCode,equals和toString。