為什么會出現(xiàn)?解決了什么問題?
我們在開發(fā)過程中,通常都會定義大量的JavaBean,然后通過IDE去生成其屬性的構(gòu)造器、getter、setter、equals、hashcode、toString方法,當(dāng)要增加屬性或者對某個屬性進(jìn)行改變時,比如命名、類型等,都需要重新去生成上面提到的這些方法。這樣重復(fù)的勞動沒有任何意義,Lombok里面的注解可以輕松解決這些問題。
它的優(yōu)點?
這是一個很方便的工具,省去了不少的操作,特別是在類的屬性很多的時候,代碼看上去也很簡潔。
其次,也避免了我們在修改屬性時,忘記修改方法的錯誤。
如何使用?
##1.添加maven依賴
<dependency>
? ? <groupId>org.projectlombok</groupId>
? ? <artifactId>lombok</artifactId>
? ? <version>1.16.6</version>
</dependency>
##2.idea中需要添加插件才能支持Lombok
##3.重啟
##4.Lombok的使用,介紹了幾個常用的注解
@Getter / @Setter
可以作用在類上和屬性上,放在類上,會對所有的非靜態(tài)(non-static)屬性生成Getter/Setter方法,放在屬性上,會對該屬性生成Getter/Setter方法。并可以指定Getter/Setter方法的訪問級別。
@EqualsAndHashCode
默認(rèn)情況下,會使用所有非瞬態(tài)(non-transient)和非靜態(tài)(non-static)字段來生成equals和hascode方法,也可以指定具體使用哪些屬性。
@ToString
生成toString方法,默認(rèn)情況下,會輸出類名、所有屬性,屬性會按照順序輸出,以逗號分割。
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
無參構(gòu)造器、部分參數(shù)構(gòu)造器、全參構(gòu)造器,當(dāng)我們需要重載多個構(gòu)造器的時候,Lombok就無能為力了。
@Data:包含@ToString, @EqualsAndHashCode, 所有屬性的@Getter, 所有non-final屬性的@Setter和@RequiredArgsConstructor的組合,通常情況下,基本上使用這個注解就足夠了。