Android中消除Java冗長代碼神器——Lombok

簡介

Android中經(jīng)常需要建一些數(shù)據(jù)的實體類,然后實現(xiàn)它們的getter和setter的方法凡简,雖然有JsonFormat的插件可以一鍵生成對應(yīng)的getter和setter的方法秤涩,但是如果一個實體類有幾十個變量的話司抱,生成大量的代碼,使這個實體類不夠簡潔浊竟。而Lombok正是一個可以消除Java冗長代碼津畸,使代碼更精簡和優(yōu)雅的注解工具。它可以在編譯期自動生成getter/setter/toString/equals/hashCode/constructor等方法后频,而在實體類中隱藏掉(不寫)這些方法(代碼中還可以引用),從而減少代碼量膏执,使代碼更精簡露久。

Lombok官網(wǎng)地址:https://projectlombok.org/ 它可以用于Java開發(fā)毫痕,也可以用于Android開發(fā),用法基本相同栏笆,下面主要講在Android Studio平臺下的使用臊泰。

安裝插件和開啟Annotation process

在Android Studio下,進(jìn)入setting/Plugins/Browse repositories针饥,搜索Lombok察滑,如下圖修肠,然后點(diǎn)擊安裝嵌施,重啟Android Studio


接著,要使代碼主要添加了Lombok的相關(guān)注解就編譯生成對應(yīng)的方法吃靠,就要開啟Annotation process巢块。進(jìn)入File/Other Settings/Defalut Settings中巧号,如下圖,在Complier/Annotatioin Processors中勾選上Enable annotation processing即可

添加依賴

Lombok官網(wǎng)的Android使用說明中越走,要求android plugin版本要不小于0.4.3廊敌,然后添加以下依賴即可:

provided "org.projectlombok:lombok:1.12.6"

使用provided而不是compile铜跑,是編譯時使用,但不打包到apk中骡澈,更多的使用方法锅纺,參考:gradle中compile,provided肋殴,compile files伞广,compile project有何區(qū)別?

用法

1.@Getter @Setter

直接在變量定義前加相應(yīng)的方法

class Person{
    @Getter @Setter private String name;
    @Setter(AccessLevel.PROTECTED) private int age;
}

對應(yīng)的完整寫法就是

class Person{
    private String name;
    private int age;

    public String getName(){
        return name;
    }

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

    public void setAge(String age){
        this.age=age;
    }
}

2.@NonNull

@Getter @Setter @NonNull
private Model model;

等價于

@NonNull
private Model model;

@NonNull
public Model getModel(){
    return model;
}

public void setModel(@NonNull Model model){
    if(model==null){
        throw new NullPointerException("model");
    } else {
        this.model = model;
    }
}

3.@Data

相當(dāng)于同時使用@ToString, @EqualsAndHashCode, @Getter和@Setter

具體代碼略

其他注解參考官網(wǎng):https://projectlombok.org/features/index.html

Java界的神器-使用Lombok來消除你的冗余代碼量疼电,這篇文章寫得比較完整嚼锄,就不重復(fù)寫了

補(bǔ)充(2016.08.23):
JakeWharton大神并不建議使用Anyone Using Project Lombok?

Using Lombok.png

---EOF---

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蔽豺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子修陡,更是在濱河造成了極大的恐慌沧侥,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件魄鸦,死亡現(xiàn)場離奇詭異宴杀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拾因,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門旺罢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绢记,你說我怎么就攤上這事扁达。” “怎么了蠢熄?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵跪解,是天一觀的道長。 經(jīng)常有香客問我签孔,道長叉讥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任饥追,我火速辦了婚禮图仓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘判耕。我一直安慰自己透绩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著帚豪,像睡著了一般碳竟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上狸臣,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天莹桅,我揣著相機(jī)與錄音,去河邊找鬼烛亦。 笑死诈泼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的煤禽。 我是一名探鬼主播铐达,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼檬果!你這毒婦竟也來了瓮孙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤选脊,失蹤者是張志新(化名)和其女友劉穎杭抠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恳啥,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡偏灿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了钝的。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翁垂。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扁藕,靈堂內(nèi)的尸體忽然破棺而出沮峡,到底是詐尸還是另有隱情,我是刑警寧澤亿柑,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站棍弄,受9級特大地震影響望薄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呼畸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一痕支、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛮原,春花似錦卧须、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笋籽。三九已至,卻和暖如春椭员,著一層夾襖步出監(jiān)牢的瞬間车海,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工隘击, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侍芝,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓埋同,卻偏偏與公主長得像州叠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子凶赁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,071評論 25 707
  • 本文章涉及代碼已放到github上annotation-study 1.Annotation為何而來 What:A...
    zlcook閱讀 29,158評論 15 116
  • 最近兩個月一直過著吃土的日子留量,《大魚海棠》忍了沒看等網(wǎng)播,這部萌片上了就舍棄了《盜墓筆記》果斷選擇它了哟冬。 有人說這...
    三米GZ閱讀 695評論 0 0
  • 《圓夢》 時至今日楼熄, 兩大幸事: 父母予命; 娶你為妻浩峡。 我妻袁夢可岂, 圓我之夢, 金玉其外翰灾, 玉金其中缕粹。 當(dāng)然當(dāng)然...
    山林風(fēng)火閱讀 288評論 0 0
  • 佛曇簡介: 佛曇是歷史悠久的古鎮(zhèn)。因芙蓉山下從前有一口清潭纸淮,映現(xiàn)山頂一塊狀如佛頭的天然巖石平斩,稱佛潭,以至成為...
    5bfd687371b8閱讀 1,157評論 0 0