為什么會(huì)出現(xiàn)?解決了什么問(wèn)題吨拍?
我們?cè)陂_(kāi)發(fā)過(guò)程中褪猛,通常都會(huì)定義大量的JavaBean,然后通過(guò)IDE去生成其屬性的構(gòu)造器羹饰、getter伊滋、setter、equals队秩、hashcode笑旺、toString方法,當(dāng)要增加屬性或者對(duì)某個(gè)屬性進(jìn)行改變時(shí)馍资,比如命名筒主、類(lèi)型等,都需要重新去生成上面提到的這些方法鸟蟹。這樣重復(fù)的勞動(dòng)沒(méi)有任何意義乌妙,Lombok里面的注解可以輕松解決這些問(wèn)題。
它的優(yōu)點(diǎn)建钥?
這是一個(gè)很方便的工具冠胯,省去了不少的操作,特別是在類(lèi)的屬性很多的時(shí)候锦针,代碼看上去也很簡(jiǎn)潔荠察。
其次,也避免了我們?cè)谛薷膶傩詴r(shí)奈搜,忘記修改方法的錯(cuò)誤悉盆。
如何使用?
##1.添加maven依賴(lài)
<dependency>
? ? <groupId>org.projectlombok</groupId>
? ? <artifactId>lombok</artifactId>
? ? <version>1.16.6</version>
</dependency>
##2.idea中需要添加插件才能支持Lombok
##3.重啟
##4.Lombok的使用馋吗,介紹了幾個(gè)常用的注解
@Getter / @Setter
可以作用在類(lèi)上和屬性上焕盟,放在類(lèi)上,會(huì)對(duì)所有的非靜態(tài)(non-static)屬性生成Getter/Setter方法宏粤,放在屬性上父腕,會(huì)對(duì)該屬性生成Getter/Setter方法。并可以指定Getter/Setter方法的訪問(wèn)級(jí)別练对。
@EqualsAndHashCode
默認(rèn)情況下寒波,會(huì)使用所有非瞬態(tài)(non-transient)和非靜態(tài)(non-static)字段來(lái)生成equals和hascode方法,也可以指定具體使用哪些屬性崇堰。
@ToString
生成toString方法沃于,默認(rèn)情況下涩咖,會(huì)輸出類(lèi)名、所有屬性繁莹,屬性會(huì)按照順序輸出檩互,以逗號(hào)分割。
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
無(wú)參構(gòu)造器咨演、部分參數(shù)構(gòu)造器闸昨、全參構(gòu)造器,當(dāng)我們需要重載多個(gè)構(gòu)造器的時(shí)候薄风,Lombok就無(wú)能為力了饵较。
@Data:包含@ToString, @EqualsAndHashCode, 所有屬性的@Getter, 所有non-final屬性的@Setter和@RequiredArgsConstructor的組合,通常情況下村刨,基本上使用這個(gè)注解就足夠了告抄。