lombok的簡單介紹和使用方法


  這是上周在群里發現有人推薦lombok,他說是神器,當時就引起了我的好奇,然后下班回來我就看了看官網介紹(菜鳥英語水平),這就是難點了,然后就是大概了解了一下,就在網上查了查相關資料,周末的時候自己試了試,現在來做個總結:

  官網:http://projectlombok.org/  ;進去就有一個幾分鍾的視頻介紹,不過是英語;還有相關的文檔等。

  lombok簡介:就是通過@Data注解的方式省去了我們平時開發定義JavaBean之后,生成其屬性的構造器、getter、setter、equals、hashcode、toString方法;但是,在編譯時會自動生成這些方法,在.class文件中。(我就不多介紹了。。。)

  要使用lombok,我們需要安裝配置lombok,首先下載lombok.jar包:https://projectlombok.org/download.html

  安裝:

    在eclipse中安裝使用:(其他開發工具我沒弄)

    打開eclipse.ini文件,在最后添加如下兩行:

      -javaagent:[lombok.jar所在路徑]
      -Xbootclasspath/a:[lombok.jar所在路徑]

    然后重啟eclipse。 

 lombok 注解:
  lombok 提供的注解不多,可以參考官方視頻的講解和官方文檔。
  文檔地址:http://projectlombok.org/features/index.

  下面介紹幾個常用的 lombok 注解:
  @Data :注解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法
  @Setter:注解在屬性上;為屬性提供 setting 方法
  @Getter:注解在屬性上;為屬性提供 getting 方法
  @Log4j :注解在類上;為類提供一個 屬性名為log 的 log4j 日志對象
  @NoArgsConstructor:注解在類上;為類提供一個無參的構造方法
  @AllArgsConstructor:注解在類上;為類提供一個全參的構造方法

 在使用之前,我們需要導入相應的包:

   

 下面來瞅瞅代碼:

  1、當我沒有使用lombok時:

 1 import java.io.Serializable;
 2 
 3 
 4 import org.junit.Test;
 5 import org.slf4j.Logger;
 6 import org.slf4j.LoggerFactory;
 7 
 8 
 9 
10 import lombok.Data;
11 
12 
13 
14 public class TestLombok implements Serializable{
15 
16     private static final long serialVersionUID = 5071239632319759222L;
17     private static final Logger logger = LoggerFactory.getLogger(TestLombok.class);
18 
19     private String name;
20     private String  gender;
21     private int age;
  }

下面我們來看看其結構圖:

  

從圖上可以發現,沒有相應的getter,setter等方法。

 

2、下面我們再來看看加了@Data 注解之后

 1 import org.junit.Test;
 2 import org.slf4j.Logger;
 3 import org.slf4j.LoggerFactory;
 4 
 5 
 6 
 7 import lombok.Data;
 8 
 9 
10 @Data
11 public class TestLombok implements Serializable{
12 
13     private static final long serialVersionUID = 5071239632319759222L;
14     private static final Logger logger = LoggerFactory.getLogger(TestLombok.class);
15 
16     private String name;
17     private String  gender;
18     private int age;
  }

看看結構圖會是什么樣子?

從上圖可以很明顯的發現,加了@Data 注解之后,多了對應的getter,setter等方法。(是不是很簡單,笑~~)那么我們再來簡單的測試下看看能不能用吧?

1 @Test
2     public void lombok(){
3         TestLombok lombok = new TestLombok();
4         lombok.setName("lombok");
5         lombok.setGender("noGender");
6         lombok.setAge(99);
7         System.out.println(lombok.getName());
8         
9     }

運行結果:

事實證明,這個是有作用的,那么對lombok,我就介紹到這兒了。下面說說我覺得的優缺點吧。

  優點:

     1、首先,大家都看到了,這是一個很方便的工具,省去了我們不少的操作,特別是在類的屬性很多的時候,代碼看上去也很簡潔。

     2、其次,也避免了我們在修改屬性時,忘記修改方法的錯誤。

  缺點:

    1、雖然代碼看上去很簡潔,但是降低了源代碼文件的可讀性和完整性(你沒發現看上去怪怪的嗎,O(∩_∩)O哈哈哈~)

    2、不支持多種參數構造器的重載。

  其他方面的影響本人暫時還不知道,坐等其他大佬來指教,謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM