轉載:http://www.blogjava.net/fancydeepin/archive/2012/07/12/382933.html
前言:
逛開源社群的時候無意發現的,用了一段時間,覺得還可以,特此推薦一下。
lombok 提供了簡單的註解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 java 程式碼。特別是相對於 POJO,光說不做不是我的風格,先來看看吧。
lombok 的官方網址:http://projectlombok.org/
lombok 其實到這裡我就介紹完了,開個玩笑,其實官網上有 lombok 三分四十九秒的視訊講解,裡面講的也很清楚了,而且還有文件可以參考。
在這裡我就不扯太多,先來看一下 lombok 的安裝,其實這個官網視訊上也有講到啦
lombok 安裝
使用 lombok 是需要安裝的,如果不安裝,IDE 則無法解析 lombok 註解。先在官網下載最新版本的 JAR 包,現在是 0.11.2 版本,我用的是 0.11.0
第一次使用的時候我下載的是最新版本的,也就是我現在用的 0.11.0,到現在已經更新了兩個版本,更新的好快啊 ... ...
1. 雙擊下載下來的 JAR 包安裝 lombok
我選擇這種方式安裝的時候提示沒有發現任何 IDE,所以我沒安裝成功,我是手動安裝的。如果你想以這種方式安裝,請參考官網的視訊。
2.eclipse / myeclipse 手動安裝 lombok
1. 將 lombok.jar 複製到 myeclipse.ini / eclipse.ini 所在的資料夾目錄下
2. 開啟 eclipse.ini / myeclipse.ini,在最後面插入以下兩行並儲存:
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
3.重啟 eclipse / myeclipse
lombok 註解:
lombok 提供的註解不多,可以參考官方視訊的講解和官方文件。
Lombok 註解線上幫助文件:http://projectlombok.org/features/index.
下面介紹幾個我常用的 lombok 註解:
@Data :註解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法
@Setter:註解在屬性上;為屬性提供 setting 方法
@Getter:註解在屬性上;為屬性提供 getting 方法
@Log4j :註解在類上;為類提供一個 屬性名為log 的 log4j 日誌物件
@NoArgsConstructor:註解在類上;為類提供一個無參的構造方法
@AllArgsConstructor:註解在類上;為類提供一個全參的構造方法
下面是簡單示例
1.不使用 lombok 的方案
2public class Person {
3
4 private String id;
5 private String name;
6 private String identity;
7 private Logger log = Logger.getLogger(Person.class);
8
9 public Person() {
10
11 }
12
13 public Person(String id, String name, String identity) {
14 this.id = id;
15 this.name = name;
16 this.identity = identity;
17 }
18
19 public String getId() {
20 return id;
21 }
22
23 public String getName() {
24 return name;
25 }
26
27 public String getIdentity() {
28 return identity;
29 }
30
31 public void setId(String id) {
32 this.id = id;
33 }
34
35 public void setName(String name) {
36 this.name = name;
37 }
38
39 public void setIdentity(String identity) {
40 this.identity = identity;
41 }
42}
43
2.使用 lombok 的方案
2@Data
3@Log4j
4@NoArgsConstructor
5@AllArgsConstructor
6public class Person {
7
8 private String id;
9 private String name;
10 private String identity;
11
12}
13
上面的兩個 java 類,從作用上來看,它們的效果是一樣的,相比較之下,很明顯,使用 lombok 要簡潔許多,特別是在類的屬性較多的情況下,
同時也避免了修改欄位名字時候忘記修改方法名所犯的低階錯誤。最後需要注意的是,在使用 lombok 註解的時候記得要匯入 lombok.jar 包到工程