日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java使用lombok消除冗余代碼的方法步驟

瀏覽:112日期:2022-08-21 15:15:28

一、項目背景

在寫Java程序的時候經常會遇到如下情形:

新建了一個Class類,然后在其中設置了幾個字段,最后還需要花費很多時間來建立getter和setter方法。

lombok項目的產生就是為了省去我們手動創建getter和setter方法的麻煩,它能夠在我們編譯源碼的時候自動幫我們生成getter和setter方法。即它最終能夠達到的效果是:在源碼中沒有getter和setter方法,但是在編譯生成的字節碼文件中有getter和setter方法。

比如源碼文件:

import java.io.Serializable; import lombok.Data; @Data public class BasicClusterInfo implements Serializable { private static final long serialVersionUID = 3478135817352393604L; private String hbaseKey; private intreceiverCount; }

以下是編譯上述源碼文件得到的字節碼文件,對其反編譯得到的結果

public class BasicClusterInfo extends java.lang.Object implements java.io.Serializable{ public BasicClusterInfo(); public java.lang.String getHbaseKey(); public int getReceiverCount(); public void setHbaseKey(java.lang.String); public void setReceiverCount(int); public boolean equals(java.lang.Object); public boolean canEqual(java.lang.Object); public int hashCode(); public java.lang.String toString(); }

二、eclipse安裝lombok

為IDE安裝lombok插件非常簡單,以eclipse環境為例,其安裝過程分為以下幾個步驟:

1)下載lombok.jar包 lombok的官網地址:https://projectlombok.org/ lombok的下載地址:https://projectlombok.org/download.html lombok項目的Github地址:https://github.com/rzwitserloot/lombok

2)運行lombok.jar 在windows命令行中輸入以下命令:

java -jar D:softwarelombok.jar

其中D:softwarelombok.jar這是windows下lombok.jar所在的位置, 數秒后將彈出以下對話框,以指定eclipse的安裝路徑。

Java使用lombok消除冗余代碼的方法步驟

3)確認完eclipse的安裝路徑后,點擊install/update按鈕,即可完成安裝。

4)安裝完成之后,請確認eclipse安裝路徑下是否多了一個lombok.jar包,并且其配置文件eclipse.ini中是否 添加了如下內容:

-javaagent:lombok.jar -Xbootclasspath/a:lombok.jar

那么恭喜你已經安裝成功,否則將缺少的部分添加到相應的位置即可 。

5)重啟eclipse。

三、項目中使用lombok

在項目中使用lombok的方法很簡單,分為四個步驟: 1)在需要自動生成getter和setter方法的類上,加上@Data注解。 2)在編譯類路徑中加入lombok.jar包,若是maven工程,引入相關依賴即可。

<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> </dependency></dependencies>

3)使用支持lombok的編譯工具編譯源代碼(關于支持lombok的編譯工具,見“五、支持lombok的編譯工具”)。 4)編譯得到的字節碼文件中自動生成了getter和setter方法。

四、原理分析

接下來對lombok的工作原理進行分析,以Oracle的javac編譯工具為例。

自從Java 6起,javac就支持“JSR 269 Pluggable Annotation Processing API”規范,只要程序實現了該API,就能在javac運行的時候得到調用。

舉例來說,現在有一個實現了'JSR 269 API'的程序A,那么使用javac編譯源碼的時候具體流程如下: 1)javac對源代碼進行分析,生成一棵抽象語法樹(AST)。 2)運行過程中調用實現了'JSR 269 API'的A程序。 3)此時A程序就可以完成它自己的邏輯,包括修改第一步驟得到的抽象語法樹(AST)。 4)javac使用修改后的抽象語法樹(AST)生成字節碼文件。

詳細的流程圖如下:

Java使用lombok消除冗余代碼的方法步驟

五、支持lombok的編譯工具

1)由“四、原理分析”可知,Oracle javac直接支持lombok。 2)常用的項目管理工具Maven所使用的java編譯工具來源于配置的第三方工具,如果我們配置這個第三方工具為Oracle javac的話,那么Maven也就直接支持lombok了。 3)Intellij Idea配置的編譯工具為Oracle javac的話,也就直接支持lombok了。 4)Eclipse中使用的不是Oracle javac這個編譯工具,而是自己實現的Eclipse Compiler for Java (ECJ).要想使ECJ支持lombok,得進行設置,具體是在Eclipse程序目錄中的eclipse.ini文件中添加如下兩行設置:

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

六、常用lombok注解

lombok 提供的注解不多,可以參考官方視頻的講解和官方文檔。 Lombok 注解在線幫助文檔:http://projectlombok.org/features/index 下面是幾個比較常用的 lombok 注解: @Data :注解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法@Setter:注解在屬性上;為屬性提供 setting 方法@Getter:注解在屬性上;為屬性提供 getting 方法@Log4j :注解在類上;為類提供一個 屬性名為log 的 log4j 日志對象@NoArgsConstructor:注解在類上;為類提供一個無參的構造方法@AllArgsConstructor:注解在類上;為類提供一個全參的構造方法

七、其他問題

現在使用Intellij Idea作為Java項目的IDE,配置Oracle javac作為編譯工具。

現在有一個A類,其中有一些字段,沒有創建它們的setter和getter方法,使用了lombok的@Data注解,另外有一個B類,它調用了A類實例的相應字段的setter和getter方法。

編譯A類和B類所在的項目,并不會報錯,因為最終生成的A類字節碼文件中存在相應字段的setter和getter方法。但是,IDE發現B類源代碼中所使用的A類實例的setter和getter方法在A類源代碼中找不到定義,IDE會認為這是錯誤。

要解決以上這個不是真正錯誤的錯誤,可以下載安裝Intellij Idea中的'Lombok plugin'。

八、lombok的罪惡

使用lombok雖然能夠省去手動創建setter和getter方法的麻煩,但是卻大大降低了源代碼文件的可讀性和完整性,降低了閱讀源代碼的舒適度。

參考文獻:

[1] http://stackoverflow.com/questions/6107197/how-does-lombok-work [2] https://projectlombok.org/download.html [3] http://stackoverflow.com/questions/3061654/what-is-the-difference-between-javac-and-the-eclipse-compiler [4] http://www.ibm.com/developerworks/library/j-lombok/ [5] http://notatube.blogspot.com/2010/12/project-lombok-creating-custom.html

到此這篇關于Java使用lombok消除冗余代碼的方法步驟的文章就介紹到這了,更多相關Java lombok消除冗余代碼內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
好看的亚洲午夜视频在线| 国产精品白丝一区二区三区| 欧美xxxx性| 粉嫩av一区二区三区四区五区 | 四虎在线精品| 亚洲精品九九| 精品一区二区男人吃奶| 亚洲成av在线| 国产一级一区二区| 国产精品密蕾丝视频下载| 欧美片网站免费| 国产精品久久久久久久久妇女| 免费污视频在线一区| 久久av一区| 麻豆久久久久久| 日韩高清不卡| 日韩精品五月天| 日韩精品久久久久久久电影99爱 | 日韩高清不卡一区二区| 国产一区二区三区久久| 午夜在线视频观看日韩17c| 国产欧美一区二区精品久久久 | 亚洲成人日韩| 国产欧美日韩在线一区二区 | **爰片久久毛片| 午夜精品成人av| 欧美在线首页| 精品欧美激情在线观看| 国产精品一区二区免费福利视频| 欧美影院三区| 亚洲一区国产一区| japanese国产精品| 你懂的亚洲视频| 伊人国产精品| 亚洲一级网站| 成人三级高清视频在线看| 亚洲精品黄色| 香蕉久久99| 国产suv精品一区| 欧美久久一区二区三区| 丝袜a∨在线一区二区三区不卡| 国产精品精品| 国产不卡精品| 麻豆久久久久久久| 免费成人在线视频观看| 欧美久久精品一级c片| 精品香蕉视频| 麻豆国产一区| 成人在线视频中文字幕| 国产福利资源一区| 国产精品中文字幕亚洲欧美| 日韩精品亚洲专区| 亚洲精品在线二区| 亚洲日韩中文字幕一区| 亚洲天堂免费| 日韩和欧美一区二区三区| 日本中文字幕视频一区| 亚洲三级网址| 18国产精品| 欧美激情综合| 久久精品五月| 中文在线免费视频| 99热精品久久| 国产亚洲永久域名| 日韩二区三区在线观看| 国产伦精品一区二区三区视频| 国产情侣一区| 国产成年精品| 在线看片不卡| 日韩avvvv在线播放| 欧美国产不卡| 国产99亚洲| 日韩av二区在线播放| 久久久国产精品网站| 欧美日韩精品免费观看视完整| 成人看片网站| 日韩午夜免费| 欧美日韩亚洲三区| 电影天堂国产精品| 亚洲综合专区| 国产成人精选| 亚洲三级av| 成人欧美一区二区三区的电影| 欧美日韩免费观看一区=区三区| 亚洲免费观看高清完整版在线观| 国产精品久av福利在线观看| 色偷偷偷在线视频播放| 另类国产ts人妖高潮视频| 你懂的国产精品| 亚洲综合国产| 国产美女久久| 狠狠久久婷婷| 精品国产欧美| 亚洲精品日本| 久久蜜桃av| 久久亚州av| 亚洲男人在线| 亚洲成av人片一区二区密柚| 日韩精品国产欧美| av亚洲在线观看| 在线手机中文字幕| 欧美韩一区二区| 日韩有吗在线观看| 国产农村妇女精品一二区| 国产资源在线观看入口av| 免费人成网站在线观看欧美高清| 精品91福利视频| 国产乱码精品| 69堂免费精品视频在线播放| 日本欧洲一区二区| 在线成人直播| 欧美理论视频| 99久久亚洲精品| 色老板在线视频一区二区| 国产一级一区二区| 五月天激情综合网| 中文字幕在线看片| 国产成人1区| 成人午夜亚洲| 亚洲黄色中文字幕| av资源亚洲| 福利一区视频| 亚洲最新无码中文字幕久久| 亚洲啊v在线| 成人欧美一区二区三区的电影| 成人一区而且| 久久精品动漫| 亚洲一区区二区| 少妇精品久久久一区二区| 日韩av在线免费观看不卡| 久久国产免费看| 久久免费影院| 99久久九九| 亚洲精品成a人ⅴ香蕉片| 国产美女久久| 久久免费黄色| 亚洲精品2区| 日本va欧美va精品发布| 国产不卡av一区二区| 国产中文一区| 日韩高清不卡在线| 国产va在线视频| 国产毛片一区| 精品网站999| av不卡在线看| 国产精品大片| 欧美日韩国产高清电影| 日韩一二三区在线观看| 精品国产欧美日韩| 蜜桃久久精品一区二区| 国产精品地址| 91精品国产成人观看| 日韩激情av在线| 国内亚洲精品| 国产情侣一区| 美女被久久久| 成人午夜精品| 国产美女亚洲精品7777| 国产精品99免费看| 国产精品15p| 一区二区国产在线观看| 一区二区三区四区日本视频| 日韩成人精品一区二区三区| 999国产精品| 精品一区二区三区中文字幕视频| 久久夜色精品| 国产在线日韩精品| 亚洲视频国产| 美女少妇全过程你懂的久久| 国产剧情一区二区在线观看| 欧美日韩国产欧| 国产精品久久久久av电视剧| 国产精品亚洲二区| 日本综合视频| 伊人久久一区| 免播放器亚洲一区| 9国产精品视频| 精品日韩视频| av一区在线| 99久久久久国产精品| 日本不良网站在线观看| 欧美日韩亚洲三区| 日本精品另类| 欧美日韩亚洲国产精品| 91伊人久久| 国产精品亚洲综合久久| 亚欧洲精品视频在线观看| 久色成人在线| 噜噜噜躁狠狠躁狠狠精品视频| 女人av一区| 日韩在线a电影| 天堂俺去俺来也www久久婷婷| 视频一区在线播放| 免费看日韩精品| 亚洲理论在线| 91精品国产自产精品男人的天堂| 日韩中文字幕区一区有砖一区| 中文无码日韩欧| 久久国产精品免费一区二区三区| 国产亚洲观看|