iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 28
0
自我挑戰組

資訊技術解戈迪安繩結系列 第 27

IT|軟體|開發|Lombok @Data

Lombok 簡介


ombok包提供了簡單的標注來幫助我們簡化消除一些必須有但是臃腫的java 代碼,比如getter、setter和構造函數等,這些函數一般我們通過IDE自動生成,有了lombok三兩個標注就輕鬆搞定。
 
為了讓Eclipse識別lombok,除了引入lombok JAR包之外,你需要安裝lombok,這樣Eclipse才不會報警告(否則即使你標注了@Data,如果你不寫setter和getter代碼的話,Eclipse會有警告)。安裝非常簡單,只需要到lombok網站中下載,然後雙擊Jar包運行即可。
 
安裝說明
[安裝]
 
安裝步驟:
#下載 lombok.jar (lombok官網
#安裝 lombok
#重啓 eclipse
https://ithelp.ithome.com.tw/upload/images/20180104/20107621uz0KWVchTh.png 

 
 
檢查:
You can check if your eclipse installation is lombok-enabled in eclipse's about dialog. The lombok version will be listed at the end of the copyright text
https://ithelp.ithome.com.tw/upload/images/20180104/20107621zv9fw8i8bQ.png
 
 
Eclipse 啟動後如果還在錯誤訊息,則點擊在 eclipse的Project 選項的 clean
https://ithelp.ithome.com.tw/upload/images/20180104/20107621upzdLvP9M4.png
 
[使用]
 
Maven

<dependencies>
     <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.16.16</version>
          <scope>provided</scope>
     </dependency>
</dependencies>

 
Lombok 的特色是根據 annotation 創建一些程式碼,以減少重復程式碼的數量,它提供了以下幾個 annotation:

@Getter 和 @Setter:為屬性創建 getter 和 setter
@EqualsAndHashCode:實現 equals() 方法和 hashCode() 方法
@ToString:實現 toString() 方法
@Data:上述3個 annotation 的和,會創建 getter setter equals hashCode 和 toString (最實用)
@Cleanup:關閉流
@Synchronized:對象同步
@SneakyThrows:拋出異常
@Log4j: log4j 日誌聲明

 

@ToString(exclude="color")
public @Data class Lure {
    private String name;
    private int size;
    private String color;
    private String style;
    private boolean flag;
}

@Data 是實現所有的成員的 Get 和 Set 方法
@ToString(exclude="color")是 ToString 時候排除 color 成員變量
注意調用 flag 成員變量時候,是 isFlag 方法
 
What is POJO


POJO 是這樣的一種「純粹的」JavaBean,在它裡面除了JavaBean 規範的方法和屬性沒有別的東西,即 private 屬性以及對這個屬性方法的 public 的 get 和set 方法。我們會發現這樣的 JavaBean 很「單純」,它只能裝載數據,作為數據存儲的載體,而不具有業務邏輯處理的能力。
所以下面的代碼被認為是 POJO 了。
 
在一個 POJO

public  class User {  
    private int id;  
    private String name;  
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  

}

 
使用後,程式碼可以變成這樣

import lombok.Getter;  
import lombok.Setter;  

public class User {  
    @Getter @Setter  
    private int id;  
    @Getter @Setter  
    private String name;  

}

 
甚至...再簡化成這樣

import lombok.Data;  

public @Data class User {  
    private int id;  
    private String name;  

}

 
資源


[1] Lombok 安裝、入門 - 消除冗長的 java 代碼
[2] [Mac OS] Setup lombok in Eclipse(Neon.2)


上一篇
IT|軟體|程式語言|Java String 效能
下一篇
IT|軟體|開發|Android Studio
系列文
資訊技術解戈迪安繩結29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言