使用Lombok來精簡你的項目代碼

什麼是Lombok

一言以蔽之:lombok是一種工具,提供了簡單的註解來簡化咱們的重複冗長Java代碼。
好比一個Java Bean,註解了lombok的@Data:html

@Data
public class NormalBean {
    private String name;
}

等價於如下代碼,Getter/Setter,toString,equals和hashCode方法會在編譯時自動生成。java

public class NormalBean {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        NormalBean that = (NormalBean) o;

        return name != null ? name.equals(that.name) : that.name == null;

    }

    @Override
    public int hashCode() {
        return name != null ? name.hashCode() : 0;
    }

    @Override
    public String toString() {
        return "NormalBean{" +
                "name='" + name + '\'' +
                '}';
    }
}

lombok的官網,官網上有比較詳細的文檔。eclipse

安裝

lombok不只要在項目中添加jar包,也要經過插件的形式開啓IDE的支持。若是你的項目是maven構建的,那麼須要在pom.xml中添加如下依賴:maven

<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.10</version>
    </dependency>

這裏推薦使用bom的形式管理pom依賴。好比Spring io platform裏就包含了lombok的dependencyManagement。ide

idea

在idea下lombok的安裝比較簡單,在plugin裏面安裝lombok plugin便可工具

eclipse

  • 將lombok.jar 複製到 eclipse.ini所在文件夾的根目錄ui

  • 編輯 eclipse.ini ,在末尾加入:this

    -Xbootclasspath/a:lombok.jar
        -javaagent:lombok.jar
  • 重啓編碼

其餘的IDE添加lombok支持請看這裏idea

用途

lombok包含了不少註解,若是所有用上,的確能夠精簡不少的代碼。但在實際的項目中,咱們經常只在定義Java Bean的時候用上lombok,而在業務代碼中不多用到。由於lombok雖然能精簡代碼,但缺點也很是明顯:

  • 下降代碼的可讀性

  • 調試困難

大部分狀況下,咱們都應該將代碼的可讀性放在編碼要考慮因素的首位,如下這幾個是我以爲最經常使用的幾個lombok註解:

@Log和一系列相關注解(如@Log4j,@Slf4j)是我最喜歡的註解,不用寫一堆的getLogger。還有@Builder也很方便,應付簡單的Builder模式足以。

總結

lombok是個很是有用的工具,可以幫助咱們精簡不少臃腫冗長的代碼,不過也有其侷限性,推薦在定義Java Bean中使用。

相關文章
相關標籤/搜索