以簡單的方式消除 Java 的冗長-IDEA

概序

Lombok 是一種 Java Archive (JAR) 文件,可用來消除 Java 代碼的冗長。java

一個標準的 Java bean,一個典型的 Java bean 通常具備幾個屬性,getter 和 setter。一般還會有一個 toString() 方法、一個 equals() 方法和一個 hashCode() 方法。maven

爲了消除代碼行,Lombok 使用註釋來標識類和 Java 代碼塊。全部的 getter、setter 以及其餘三個方法都是在編譯時被暗示幷包括進來的。spa

Lombok 還讓您得以簡化代碼的其餘部分 — 不單單是 Java bean。好比,還能夠減小 try/catch/finally 塊內以及同步方法內的冗餘代碼。.net

IDEA安裝Lombok 插件

  1. 打開IDEA的Settings面板,並選擇Plugins選項,而後點擊 「Browse repositories..」
  2. 在輸入框輸入」lombok」,獲得搜索結果,Lombok plugin,點擊安裝,而後安裝提示重啓IDEA,安裝成功; 

項目集成Lombok

方式一:添加lombok的maven依賴插件

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok-maven -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok-maven</artifactId>
            <version>1.16.18.1</version>
        </dependency>

 方式二:手動添加lombok.jar.code

使用lombok

建立一個簡單的JavaBeanxml

public class Food{
    private String name;
    private int size;
    private String color;
    private String style;
}

@Data註解的使用

使用@Data註解爲上面的JavaBean添加getter、setter、equals、hashcode、toString等方法。對象

import lombok.Data
@Data
public class Food{
    private String name;
    private int size;
    private String color;
    private String style;
}

看編譯後的.classget

在生成 getter/setter 方法時,Lombok 聽從傳統的標準。全部這些方法名都以 get 或 set 開頭而且屬性名都是大寫的。固然,若是屬性是一個 Boolean,狀況例外。在這種狀況下,getter 以 is 開始,而非 get。這是 Java bean 的一種標準實踐。同步

@Cleanup 註解使用

爲了消除 try/catch/finally 塊的冗餘,只需使用 @Cleanup 註釋

public static void main(String[] args) throws IOException {
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);

}

這個代碼塊不只消除了 try/catch/finally 塊,並且還關閉了開放流

@Synchronized 註解使用

Lombok 還能夠減小同步方法所需的代碼的冗餘。很天然,這是用 @Synchronized 方法實現的。

@Synchronized
private int foo() {
    //some magic done here
    return 1;
}

若是用 @Synchronized 註釋的這個方法是靜態的,那麼 Lombok 就會建立一個名爲 $LOCK 的類對象,並會針對該對象同步這個方法。

相關文章
相關標籤/搜索