IT|軟體|開發|Lombok @Data

Lombok 簡介


ombok包提供了簡單的標注來幫助我們簡化消除一些必須有但是臃腫的java 代碼,比如getter、setter和構造函數等,這些函數一般我們通過IDE自動生成,有了lombok三兩個標注就輕鬆搞定。

為了讓Eclipse識別lombok,除了引入lombok JAR包之外,你需要安裝lombok,這樣Eclipse才不會報警告(否則即使你標注了@Data,如果你不寫settergetter代碼的話,Eclipse會有警告)。安裝非常簡單,只需要到lombok網站中下載,然後雙擊Jar包運行即可。

安裝說明    2017-04-10 Mon    

[安裝]

安裝步驟:
#下載 lombok.jar (lombok官網
#安裝 lombok
#重啓 eclipse



檢查:
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


Eclipse 啟動後如果還在錯誤訊息,則點擊在 eclipseProject 選項的 clean

[使用]

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    2017-04-10 Mon 

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;  

}    

資源

留言

這個網誌中的熱門文章

IoT|硬體|樹莓派|外接麥克風及喇叭設置

成長|語文|學習-英文 持續更新!

IoT|硬體|通訊|Arduino 使用 SoftwareSerial Library 與電腦通訊