Lombok官網:https://projectlombok.org/html
Lombok的功能簡單一點說,就是能夠幫咱們生成一些代碼,這些代碼並非在源碼(source code)體現出來的,而是在字節碼文件中。java
好比咱們建立一個簡單的pojo,須要生成有參構造函數、無參構造函數、getter、setter、toString、hashCode、equals這些個方法,雖然經過IDE也是能夠生成代碼的,可是,利用IDE生成的代碼有個問題:代碼量大、若是修改屬性名後,這些方法基本都得從新生成,不咋方便。maven
Lombox的功能:能夠爲咱們生成上面說的那些方法,只須要咱們在類名上使用相關注解便可。ide
這裏使用Maven來導入依賴:函數
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.22</version> <scope>provided</scope> </dependency>
注意,maven引入依賴是,scope是provided,也就是說,lombok包在運行時是不須要的,主要是在編譯的時候使用。post
這裏舉個簡單的示例,就建立一個Person類:測試
package cn.ganlixin.pojo; import lombok.AllArgsConstructor; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.ToString; // 注意下面使用的幾個註解,都是Lombok提供的 @NoArgsConstructor @AllArgsConstructor @ToString @EqualsAndHashCode public class Person { // 建立三個屬性 private Integer id; private String name; private String addr; // 沒有使用IDE進行代碼生成,編譯源碼時,Lombok會自動在字節碼中生成方法(前面註解指定的那些方法) }
下面是Lombok經常使用的註解:code
@NoArgsConstructor // 生成無參構造函數 @AllArgsConstructor // 生成包含全部屬性的有參構造函數 @ToString // 生成toString方法 @EqualsAndHashCode // 生成equals和hashCode方法 @Getter // 爲全部字段生成getter @Setter // 爲全部字段生成setter
建立測試類:htm
package cn.ganlixin.pojo; import org.junit.Test; public class TestPerson { @Test public void testCreatePerson() { // 雖然IDE提示下面的構造函數有錯誤,可是執行的時候,並不會報錯,而是會正常運行 Person person = new Person(1, "ganlixin", "beijing"); System.out.println(person); // 輸出 Person(id=1, name=ganlixin, addr=beijing) // 說明有參構造函數和toString方法已經生成了 } }
參考:解決IDEA中Lombok生成代碼後提示錯誤的問題blog