日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

使用lombok来简化你的Java Bean

發布時間:2024/1/17 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用lombok来简化你的Java Bean 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

能做什么?

在使用lombok之前:

public class Book {private Integer id;private String title;private Date releaseDate;private Double price;private String[] authors;private String publisher;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public Date getReleaseDate() {return releaseDate;}public void setReleaseDate(Date releaseDate) {this.releaseDate = releaseDate;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}public String[] getAuthors() {return authors;}public void setAuthors(String[] authors) {this.authors = authors;}public String getPublisher() {return publisher;}public void setPublisher(String publisher) {this.publisher = publisher;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (!(o instanceof Book)) return false;if (!super.equals(o)) return false;Book book = (Book) o;if (getId() != null ? !getId().equals(book.getId()) : book.getId() != null) return false;if (getTitle() != null ? !getTitle().equals(book.getTitle()) : book.getTitle() != null) return false;if (getReleaseDate() != null ? !getReleaseDate().equals(book.getReleaseDate()) : book.getReleaseDate() != null)return false;if (getPrice() != null ? !getPrice().equals(book.getPrice()) : book.getPrice() != null) return false;// Probably incorrect - comparing Object[] arrays with Arrays.equalsif (!Arrays.equals(getAuthors(), book.getAuthors())) return false;return getPublisher() != null ? getPublisher().equals(book.getPublisher()) : book.getPublisher() == null;}@Overridepublic int hashCode() {int result = super.hashCode();result = 31 * result + (getId() != null ? getId().hashCode() : 0);result = 31 * result + (getTitle() != null ? getTitle().hashCode() : 0);result = 31 * result + (getReleaseDate() != null ? getReleaseDate().hashCode() : 0);result = 31 * result + (getPrice() != null ? getPrice().hashCode() : 0);result = 31 * result + Arrays.hashCode(getAuthors());result = 31 * result + (getPublisher() != null ? getPublisher().hashCode() : 0);return result;}@Overridepublic String toString() {return "Book{" +"id=" + id +", title='" + title + '\'' +", releaseDate=" + releaseDate +", price=" + price +", authors=" + Arrays.toString(authors) +", publisher='" + publisher + '\'' +'}';} }

在使用之后:

@Data public class Book {private Integer id;private String title;private Date releaseDate;private Double price;private String[] authors;private String publisher; }

并且從功能上,使用后=使用前。
說的簡單點:從此以后不需要寫Getter、Setter、toString、hashCode、canEqual、constructor這些大部分相似,卻又不得不寫的代碼了。

怎么用?

一共有三個步驟

  • 為你的開發工具安裝插件。

    • IntelliJ IDEA: settings->Plugins->Browse Repositories->搜索Lombok Plugin->install

    • Eclipse / MyEclipse / Spring Tool Suite / JBoss Developer Studio: 看這里

    • Netbeans: 看這里

  • 下載并導入Jar包,下載地址

  • 在需要的類上標注注解

  • 目前我使用的版本是1.16.16,有下面幾個常用注解:

    @Date

    生成Getter、Setter、toString、equals、hashCode方法。

    可標注:Class

    @Value

    生成Getter、toString、equals、hashCode、還有全字段的構造方法。并且會將字段全都添加final。

    可標注:Class

    @Builder

    在類內部生成一個名為類名+Builder的內部類,用于快速構建。

    可標注:Class

    你可以這樣使用它:

    @Builder public class Book {private Integer id;private String title;private Date releaseDate;private Double price;private String[] authors;private String publisher;} public static void main(String[] args) {Book book = Book.builder().id(1).title("書名").build(); }

    @Getter/@Setter

    生成Getter或Setter方法。如果標注在類上則會生成這個類中所有字段的Getter或Setter方法。

    可標注:Field,Class

    @NonNull

    為你的構造函數、Setter添加空值校驗。標注的字段賦值為空時,會拋出NullPointerException。

    可標注:Field,Method,Parameter,Local Variable

    為什么?

    自從Java 6起,Javac就支持了一個名叫JSR 269 Pluggable Annotation Processing API的規范,它的作用就是:如果你實現了這個API,在Javac編譯時就會得到調用。而lombok正是運用了這一點。

    流程是這樣的:

  • Javac編譯源代碼,并生成語法樹(AST)

  • Javac尋找實現了JSR 269 .... API的代碼(lombok),并調用。

  • lombok尋找被標注了注解的類,修改Javac生成的語法樹(AST)。

  • Javac將語法樹生成為字節碼(.class)

  • 就到這里了

    它還具備很多好用的功能,你可以去這里看看。

    總結

    以上是生活随笔為你收集整理的使用lombok来简化你的Java Bean的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。