Intellij IDEA 安裝lombok及使用詳解

llla發表於2019-02-10

參考資料,常見外掛參考資料

專案中經常使用bean,entity等類,絕大部分資料類類中都需要get、set、toString、equals和hashCode方法,
雖然eclipse和idea開發環境下都有自動生成的快捷方式,但自動生成這些程式碼後,如果bean中的屬性一旦有
修改、刪除或增加時,需要重新生成或刪除get/set等方法,給程式碼維護增加負擔。而使用了lombok則不一樣,
使用了lombok的註解(@Setter,@Getter,@ToString,@@RequiredArgsConstructor,@EqualsAndHashCode或@Data)之後,
就不需要編寫或生成get/set等方法,很大程度上減少了程式碼量,而且減少了程式碼維護的負擔。故強烈建議專案中
使用lombok,去掉bean中get、set、toString、equals和hashCode等方法的程式碼。
複製程式碼

一、實戰

1.安裝lombok外掛:

具體流程如圖:

1.1

Intellij IDEA 安裝lombok及使用詳解

1.2

Intellij IDEA 安裝lombok及使用詳解

1.3

Intellij IDEA 安裝lombok及使用詳解

2.新增lombok的maven的pom.xml依賴:

  <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <version>1.16.10</version>
 </dependency>
複製程式碼

3. 示例程式碼Student.java

package com.lombok.demo;


import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
* Created by zhangzh on 2017/2/8.
*/
@Setter
@Getter
@ToString
@EqualsAndHashCode
public class Student {

  private String name;
  private int age;
  private String male;
  private String studentNo;
}
複製程式碼

4. 測試類LombokTest.java

package com.lombok.demo;

import lombok.extern.java.Log;

/**
* Created by zhangzh on 2017/2/8.
*/
@Log
public class LombokTest {

  public static void main(String[] args) {

      Student student = new Student();
      student.setAge(27);
      student.setMale("man");
      student.setName("lance");
      student.setStudentNo("2017");

      System.out.println(student.toString());

      Student student2 = new Student();
      student2.setAge(27);
      student2.setMale("man");
      student2.setName("lance");
      student2.setStudentNo("2017");

      System.out.println(student.equals(student2));

      student2.setStudentNo("2018");

      System.out.println(student.equals(student2));

      log.info("lombok test");

  }
}
複製程式碼

5. 輸出結果:

Student(name=lance, age=27, male=man, studentNo=2017)
true
false
lombok test
複製程式碼
結果分析,如果沒有新增@Setter註解,則LombokTest中的student示例無法使用setAge()等方法。使用lombok之後,
省去了許多沒必要的get,set,toString,equals,hashCode程式碼,簡化了程式碼編寫,減少了程式碼量。

另外@Data註解的作用相當於 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode的合集。
另外@Log 省去了在LombokTest中新增 getLogger的如下程式碼:
複製程式碼

相關文章