欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入了解java Lombok的使用方法

 更新時間:2019年06月24日 08:33:54   作者:鞠騫的博客  
這篇文章主要介紹了深入了解java Lombok的使用,Lombok是一個通過注解以達到減少代碼的Java庫,如通過注解的方式減少get,set方法,構(gòu)造方法等,需要的朋友可以參考下

前言

在Java中,封裝是一個非常好的機制,最常見的封裝莫過于get,set方法了,無論是Intellij idea 還是Eclipse,都提供了快速生成get,set方法的快捷鍵,使用起來很是方便,其實,我們還有更方便的辦法,就是今天的主角-Lombok

Lombok是什么?

Lombok是一個通過注解以達到減少代碼的Java庫,如通過注解的方式減少get,set方法,構(gòu)造方法等。

如何安裝Lombok?

如何安裝使用Lombok呢?

方法一

通過向lib文件夾中添加lombok.jar包即可,

方法二

如果使用的是Maven,則可在項目的pom.xml文件中添加以下依賴:

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
</dependency>

通過以上兩種方法的確可以使用Lombok的相關API了,但無論是Intelij idea,還是Eclipse默認情況下是不能識別的,我們還要讓idea識別起來。
Intellij Idea方法:

File->settings->Plugins->Browse repositories->Lombok

如何使用Lombok?

Lombok提供注解方式來提高代碼的簡潔性,常用注解有:

  • @Data
  • @Setter @Getter
  • @NonNull
  • @Synchronized
  • @ToString
  • @EqualsAndHashCode
  • @Cleanup
  • @SneakyThrows

下面分別介紹每個方法的作用以及對應的源代碼 @Data

該注解相當于同時加上以下注解@Setter @Getter,@ToString,@EqualsAndHashCode,作用于類中 使用:

/**
* author: andy
* date: 17-4-22
* blog: www.andyqian.com
*/
@Data
public class Person {
private String name;
private String address;
private String city;
private String state;
private String zip;
private Date brithday;
}

效果如下:

@Getter@Setter

作用于屬性上,自動生成get,set方法.

/**
* author: andy
* date: 17-4-22
* blog: www.andyqian.com
*/
public class Person {
@Getter@Setter
private String name;
}

等價源碼:

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

@NonNull

該注解快速判斷是否為空,如果為空,則拋出java.lang.NullPointerException
使用方法:

/**
* author: andy
* date: 17-4-22
* blog: www.andyqian.com
*/
public class Person {
private String name;
@Setter@Getter@NonNull
private List<Person> member;
}

源碼:

@NonNull
private List<Person> members;
public Family(@NonNull final List<Person> members) {
if (members == null) throw new java.lang.NullPointerException("members");
this.members = members;
}
@NonNull
public List<Person> getMembers() {
return members;
}
public void setMembers(@NonNull final List<Person> members) {
if (members == null) throw new java.lang.NullPointerException("members");
this.members = members;
}

@Synchronized

該注解自動添加到同步機制,有趣的是,生成的代碼并不是直接鎖方法,而是鎖代碼塊, 作用范圍是方法上
使用方法:

private DateFormat format = new SimpleDateFormat("MM-dd-YYYY");
@Synchronized
public String synchronizedFormat(Date date) {
return format.format(date);
}

生成等價源碼:

private final java.lang.Object $lock = new java.lang.Object[0];
private DateFormat format = new SimpleDateFormat("MM-dd-YYYY");
public String synchronizedFormat(Date date) {
synchronized ($lock) {
return format.format(date);
}
}

@ToString

該方法大家應該非常熟悉,但需要注意的是:@ToString有多個屬性可以進一步設置:

  • callSuper 是否輸出父類的toString方法,默認為false
  • includeFieldNames 是否包含字段名稱,默認為true
  • exclude 排除生成tostring的字段

使用方法:

/**
* author: andy
* date: 17-4-22
* blog: www.andyqian.com
*/
@ToString(callSuper = true,exclude ={"name"})
public class Person {
private String name;
private String address;
}

等價源碼:

public String toString() {
return "Person{" +
"address='" + address + '\'' +
'}';
}

@Cleanup

注釋可用于確保已分配的資源被釋放,如IO的連接關閉。
使用方法:

public void testCleanUp() {
try {
@Cleanup ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(new byte[] {'Y','e','s'});
System.out.println(baos.toString());
} catch (IOException e) {
e.printStackTrace();
}
}

等價源碼:

public void testCleanUp() {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
baos.write(new byte[]{'Y', 'e', 's'});
System.out.println(baos.toString());
} finally {
baos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}

小結(jié)

通過前面從安裝,到使用的案例章節(jié)的講解,希望Lbok能夠給你帶來更大的coding快感。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • idea 解決用骨架創(chuàng)建項目過慢的操作方式

    idea 解決用骨架創(chuàng)建項目過慢的操作方式

    這篇文章主要介紹了idea 解決用骨架創(chuàng)建項目過慢的操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • SpringBoot實現(xiàn)發(fā)送郵件功能過程圖解

    SpringBoot實現(xiàn)發(fā)送郵件功能過程圖解

    這篇文章主要介紹了SpringBoot實現(xiàn)發(fā)送郵件功能過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Intellij IDEA 閱讀源碼的 4 個絕技(必看)

    Intellij IDEA 閱讀源碼的 4 個絕技(必看)

    今天小編給大家分享Intellij IDEA 閱讀源碼的 4 個絕技,熟練的運用 IDEA 中各個小技巧,讓閱讀跟蹤源碼變得更輕松,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-04-04
  • java中常見的中文亂碼總結(jié)

    java中常見的中文亂碼總結(jié)

    本文主要介紹了java中常見的中文亂碼以及解決方法,主要包括字節(jié)碼文件讀取時出現(xiàn)的亂碼問題,本文通過實例代碼給大家介紹的非常詳細,具有很好的參考價值,感興趣的朋友跟隨小編一起看看吧
    2017-03-03
  • Java中各種集合判空方法總結(jié)

    Java中各種集合判空方法總結(jié)

    最近接觸集合比較多,經(jīng)常對于集合是否為空做判斷,下面這篇文章主要給大家介紹了關于Java中各種集合判空方法總結(jié)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • jedis獲取redis中二進制圖片轉(zhuǎn)Base64方式

    jedis獲取redis中二進制圖片轉(zhuǎn)Base64方式

    這篇文章主要介紹了jedis獲取redis中二進制圖片轉(zhuǎn)Base64方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java實現(xiàn)短信驗證碼的示例代碼

    Java實現(xiàn)短信驗證碼的示例代碼

    本文主要介紹了Java實現(xiàn)短信驗證碼的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Mybatis-Plus中IdType.AUTO局部配置不生效的問題解決

    Mybatis-Plus中IdType.AUTO局部配置不生效的問題解決

    本文主要介紹了Mybatis-Plus中IdType.AUTO局部配置不生效的問題解決,數(shù)據(jù)庫插入數(shù)據(jù)時,id的默認生成方式還是雪花算法,局部配置沒有生效,下面就來解決一下,感興趣的可以了解一下
    2023-09-09
  • Java運行時多態(tài)性的實現(xiàn)

    Java運行時多態(tài)性的實現(xiàn)

    Java運行時多態(tài)性的實現(xiàn)...
    2006-12-12
  • Spring bean為什么默認是單例

    Spring bean為什么默認是單例

    這篇文章主要介紹了Spring bean為什么默認是單例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08

最新評論