lombok的使用與eclipse配置lombok插件

背景
lombok庫提供了一些註解來簡化java代碼 
官網:http://projectlombok.org/ 
查看lombok所有api:https://projectlombok.org/api/overview-summary.html

幾個常用的 lombok 註解:

@val : 和 scala 中 val 同名, 可以在運行時確定類型;

@NonNull : 註解在參數上, 如果該類參數爲 null , 就會報出異常,  throw new NullPointException(參數名)

@Cleanup : 註釋在引用變量前, 自動回收資源 默認調用 close() 方法

@Getter/@Setter : 註解在類上, 爲類提供讀寫屬性

@Getter(lazy=true) :

@ToString : 註解在類上, 爲類提供 toString() 方法

@EqualsAndHashCode : 註解在類上, 爲類提供 equals() 和 hashCode() 方法

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor : 註解在類上, 爲類提供無參,有指定必須參數, 全參構造函數

@Data : 註解在類上, 爲類提供讀寫屬性, 此外還提供了 equals()、hashCode()、toString() 方法

@Value :

@Builder : 註解在類上, 爲類提供一個內部的 Builder

@SneakThrows :

@Synchronized : 註解在方法上, 爲方法提供同步鎖

@Log :

@Log4j : 註解在類上, 爲類提供一個屬性名爲 log 的 log4j 的日誌對象

@Slf4j : 註解在類上, 爲類提供一個屬性名爲 log 的 log4j 的日誌對象

@Cleanup("dispose") org.eclipse.swt.widgets.CoolBar bar = new CoolBar(parent, 0);
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);

實現原理:
Lombok不是通過字節碼改寫來實現的。 
它主要是用編譯器內支持的annotation processing,直接操縱抽象語法樹(AST),根據需要添加新節點。

代碼中使用(舉兩個例子,更多的可以看官網api) 
@Slf4j使用

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class LogExample {
}

生成後的數據

public class LogExample {
 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
}

@Getter使用

private @Getter int foo;

上將編譯成

 public int getFoo() {
     return this.foo;
 }

使用方法

1.在pom.xml引包

<!-- 增加lombok依賴,可以使用註解@Data 編譯時自動生成get,set方法,構造函數,toString方法 -->
<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<scope>compile</scope>
</dependency>

2.在包目錄的地址欄輸入:cmd

3.在dos命令行輸入:java -jar lombok-1.16.20.jar

4.在彈出框選擇需要安裝的IDE,點擊install/update按鈕,即可安裝完成

5.安裝完成之後,確認eclipse安裝路徑下是否多了一個lombok.jar包

6.配置文件eclipse.ini中是否 添加了如下內容: 
    -javaagent:lombok.jar 

    -Xbootclasspath/a:lombok.jar 

如果都有,就成功

7.安裝成功,使用不了的原因:沒有重啓IDE,沒有clean項目,lombok版本太低等等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章