說明
官網地址
全是英文看不懂?簡而言之Lombok,能夠在項目中使用註解,爲你省去所有諸如:對象的構造函數、 equals()方法,屬性的 get()/set()方法等等,這些沒有技術含量的代碼統統都不用寫了,Lombok幫你搞定一切,全部幫你自動生成!
使用Lombok的時候,IDE可能會出現報錯,格式不規範。這時候就需要安裝Lombok插件。一般最新的idea都會自動或提示你安裝。
那麼我們開始使用!
1.pom
點擊這裏,在中央倉庫選擇自己喜歡的版本!
2.註解
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User {
private String id;
private String realName;
private String gender;
private String age;
private String email;
private String address;
private String nickName;
private String password;
private String account;
}
(1)@Data
@Data註解在類上,會爲類的所有屬性自動生成setter/getter、equals、canEqual、hashCode、toString方法,如爲final屬性,則不會爲該屬性生成setter方法。
(2)@Getter/@Setter
@Getter/@Setter註解類可爲可以爲相應的屬性自動生成Getter/Setter方法
(3)@NonNull
該註解用在屬性或構造器上,Lombok會生成一個非空的聲明,可用於校驗參數,能幫助避免空指針。
@NotNull
private String id;
public User(@NotNull String id) {
this.id = id;
}
(4)@Cleanup
該註解能幫助我們自動調用close()方法,很大的簡化了代碼。
@Cleanup FileInputStream inputStream = new FileInputStream("/asas/sasa/as");
@Cleanup FileOutputStream outputStream = new FileOutputStream("/sasa/sa/ds");
(5)@EqualsAndHashCode
默認情況下,會使用所有非靜態(non-static)和非瞬態(non-transient)屬性來生成equals和hasCode,也能通過exclude註解來排除一些屬性。
(6)@ToString
使用@ToString註解,Lombok會生成一個toString()方法,默認情況下,會輸出類名、所有屬性(會按照屬性定義順序),用逗號來分割。通過將includeFieldNames參數設爲true,就能明確的輸出toString()屬性
(7)@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
無參構造器、部分參數構造器、全參構造器。Lombok沒法實現多種參數構造器的重載。
(8)@Builder
User user = User.builder().age("22").account("asdfasd").gender("asdfasf").build();
(9)@SneakyThrows
隱式拋出異常
@Test
@SneakyThrows
public void test() {
User user = User.builder().age("22").account("asdfasd").gender("asdfasf").build();
@Cleanup FileInputStream inputStream = new FileInputStream("/asas/sasa/as");
@Cleanup FileOutputStream outputStream = new FileOutputStream("/sasa/sa/ds");
}