使用Lombok來消除你的冗余代碼量

簡介

他是一個通過注解方式來減少你的POJO類的getter和setter等方法的一個工具,我這里演示的在Android Studio中的使用方式,當(dāng)然如果你使用的是idea那么這方法也通用,如果你用的是eclipse,那么官網(wǎng)也有視頻教程,我這里就不演示了

安裝依賴

眾所周知在在Android Studio中添加依賴有直接下載jar包和使用cradle的dependencies方法,我們這里直接使用dependencies方法

添加gradle依賴

在你的項(xiàng)目的build.grade文件中添加

provided 'org.projectlombok:lombok:1.12.6'

至于為什么是provided而不是compile,因?yàn)檫@個框架是在將java編譯為class前處理代碼了,意思是在生成的class文件中已經(jīng)生成了getter和setter,所以這個依賴是我們在編譯的時候使用,不需要打包到apk中

安裝Lombok插件

雖然我們添加了依賴,但是Android Studio他知道怎么處理這個文件嗎,肯定是不知道啦,所以我們的安裝一個插件來告訴他怎么處理

Preferences > Plugins > Browse repositories

在輸入框內(nèi)輸入combo,可看到已經(jīng)搜索出來了這個插件,我們點(diǎn)擊旁邊的安裝,安裝完成后重啟插件我們就安裝完畢了,它的使用使用說明可以查看插件主頁

現(xiàn)在插件雖然安裝完了,但是Android Studio他怎么知道什么時候來使用這個插件呢,他是不是有個開關(guān)什么的,沒錯!你猜對了

開啟項(xiàng)目的Annotation process

首先我們打開項(xiàng)目的設(shè)置,要強(qiáng)調(diào)的是項(xiàng)目的,而不是工具全局的設(shè)置,如下圖

打開后按照下圖勾選Enable annotation processing

到這里為止,工具和基本環(huán)境我們基本配置完了,接下來我們需要創(chuàng)建一個項(xiàng)目來測試

一些常用注解

@Getter and @Setter

可以很直觀的從名字看出這個兩個是分別用來生成Getter和Setter方法的

public class User{
    @Getter @Setter private boolean employed = true;
    @Setter(AccessLevel.PROTECTED) private String name;
}

相當(dāng)于

public class User {
    private boolean employed = true;
    private String name;

    public User() {
    }

    public boolean isEmployed() {
        return this.employed;
    }

    public void setEmployed(boolean employed) {
        this.employed = employed;
    }

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

到這里,大家肯定要問了,你說相當(dāng)就等啊,或者上面相等的代碼是怎么來的呢,其他我們可以直接反編譯生成的class文件查看,打開Android Studio的class目錄下的User.class文件,可以看到

同樣下面的實(shí)例代碼你可以這樣查看,當(dāng)然我們也可用通過Android Studio的

從上圖我們發(fā)現(xiàn)我們沒有在源代碼寫一些Getter方法,但是從Structure窗口看到這些方法已經(jīng)自動生成了,是不是很神奇

@NonNull

提供一個參數(shù)的非空判斷

@Getter @Setter @NonNull
private List<String> members;

等同于

@NonNull
private List<String> members;

@NonNull
public List<String> getMembers() {
    return this.members;
}

public void setMembers(@NonNull List<String> members) {
    if(members == null) {
        throw new NullPointerException("members");
    } else {
        this.members = members;
    }
}

查看原文或源代碼點(diǎn)擊這里http://i.woblog.cn/2016/06/19/use-lombok/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,058評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • Android開發(fā)工具 Android Studio Android開發(fā)環(huán)境,基于IntelliJ IDEA,谷歌...
    奈何心善閱讀 2,525評論 1 18
  • 一個偽文青的懺悔 這個喧囂浮躁的社會里有一群堅(jiān)持自我的人,他們被稱為文藝青年。他們的精神世界豐富而廣闊,他們大多行...
    藍(lán)曼卿閱讀 5,170評論 31 20

友情鏈接更多精彩內(nèi)容