學習使用Lombok生成代碼

1、介紹

  Lombok官網:https://projectlombok.org/html

  Lombok的功能簡單一點說,就是能夠幫咱們生成一些代碼,這些代碼並非在源碼(source code)體現出來的,而是在字節碼文件中。java

  好比咱們建立一個簡單的pojo,須要生成有參構造函數、無參構造函數、getter、setter、toString、hashCode、equals這些個方法,雖然經過IDE也是能夠生成代碼的,可是,利用IDE生成的代碼有個問題:代碼量大、若是修改屬性名後,這些方法基本都得從新生成,不咋方便。maven

  Lombox的功能:能夠爲咱們生成上面說的那些方法,只須要咱們在類名上使用相關注解便可。ide

 

2、導入jar包

  這裏使用Maven來導入依賴:函數

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.22</version>
    <scope>provided</scope>
</dependency>

  注意,maven引入依賴是,scope是provided,也就是說,lombok包在運行時是不須要的,主要是在編譯的時候使用。post

 

3、建立簡單pojo

  這裏舉個簡單的示例,就建立一個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會自動在字節碼中生成方法(前面註解指定的那些方法)
}

  

4、Lombok經常使用的註解

  下面是Lombok經常使用的註解:code

@NoArgsConstructor      // 生成無參構造函數   
@AllArgsConstructor     // 生成包含全部屬性的有參構造函數
@ToString               // 生成toString方法
@EqualsAndHashCode      // 生成equals和hashCode方法
@Getter                 // 爲全部字段生成getter     
@Setter                 // 爲全部字段生成setter

  

5、進行測試

  建立測試類: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方法已經生成了
    }
}

 

6、解決IDEA提示Lombok生成方法未定義的問題

  參考:解決IDEA中Lombok生成代碼後提示錯誤的問題blog

相關文章
相關標籤/搜索