別再寫getter,setter方法了,用Lombok來簡化你的代碼吧


前言

在實際開發中,有些代碼是重復的、IDE一鍵生成的,不寫不行,寫了又覺得代碼太臃腫,不美觀。如果你也有這種體會,那么,請使用Lombok插件吧,真的非常好用。Lombok的使用也非常簡單,都是各種各樣的注解。

引入依賴

<dependency>
 <groupId>org.projectlombok</groupId>
 <artifactId>lombok</artifactId>
 <optional>true</optional>
</dependency>

IDEA安裝Lombok插件

單單引入Lombok的包還是不夠的,ide會識別不到,會提示你getter,setter等方法沒有定義。所以,需要先安裝Lombok插件(eclipse,vs code等可以自行百度安裝)

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

點擊 File -> setting -> plugins,搜索Lombok安裝即可,安裝完后重啟IDEA。

Lombok常用注解

1.Data注解

該注解作用在類上,默認為類生成get 、 set、equals、hashCode、toString 等方法。定義一個Happyjava類如下:

@Data
public class Happyjava {
​
 private String username;
​
 private String pwd;
​
}

使用了Data注解標識在類上,我們可以通過ide的自動補全功能查看Data注解為我們實現了哪些方法:

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

可以看到,get 、 set、equals、hashCode、toString 這些pojo必備的方法都已經實現了。

2.Setter注解

有些類不需要getter方法,那么我們可以單獨使用setter注解來標識。

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

通過ide的自動補全功能,可以看到為我們實現了getter方法

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

3.Getter注解

有些類只提供getter返回,不允許外部設置屬性值,這時候可以使用getter注解。

@Getter
public class Happyjava {
​
 private String username;
​
 private String pwd;
​
}

4.AllArgsConstructor注解

該注解為我們提供了一個全參的構造器。

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

通過反編譯查看:

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

為我們創建了全參的構造方法

5.NoArgsConstructor注解

如果我們使用了AllArgsConstructor注解,又想擁有一個無參構造方法,那就使用NoArgsConstructor注解吧。

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

通過反編譯查看

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

6.EqualsAndHashCode注解

為我們實現了equals、canEqual、hashCode 方法。

7.Cleanup注解

清理注解,該注解放在需要關閉的變量前面,比如InpuStream等。默認調用close() 方法,如果需要調用其它的關閉方法,需要手動聲明:@Cleanup(“methodName”) 。還有一點需要注意的是,如果close方法拋出受檢異常,在編譯階段會報錯:

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

我們可以手動把這個異常拋出

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

通過反編譯查看:

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

這個注解我個人是不太喜歡用的,個人更推薦大家使用try-with-resources的方式來關閉資源吧。如下:

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

8.Builder注解

該注解是本人最喜歡的注解之一,采用Builder的模式構造實例,是我非常喜歡的實例化類的方法。

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

通過反編譯查看:

別再寫getter,setter方法了,用Lombok來簡化你的代碼吧

然后我們就可以愉快的通過Builder來構造實例啦

public static void main(String[] args) {
 Happyjava happyjava = Happyjava.builder()
 .username("happyjava")
 .pwd("123456")
 .build();
}

9.Slf4j注解

這個注解是我使用的最多的注解,使用該注解,就不需要再手動的獲取Slf4j實例啦,直接log調用即可。

@Slf4j
public class Main {
 public static void main(String[] args) {
 log.info("happyjava 好好學習");
 }
}

通過反編譯查看:

Slf4j注解注解,基本上是我開發過程中每個類都會使用的(除了pojo類啦)

總結

以上這些是本人在開發中比較常用到的注解,當然,Lombok的注解可不止這些,只是其他的我不常用罷了。比如Synchronized注解也是不錯的,但是我就不太喜歡用。


免責聲明!

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



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