精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

以簡單的方式消除Java冗余

開發 后端
Lombok是一種Java實用工具,可用來幫助開發人員消除Java的冗長,尤其是對于簡單的Java對象(POJO)。它通過注釋實現這一目的。

Lombok是一種JavaArchive(JAR)文件,可用來消除Java代碼的冗長。通過在開發環境中實現Lombok,開發人員可以節省構建諸如hashCode()和equals()這樣的方法以及以往用來分類各種accessor和mutator的大量時間。

我們看這樣一個例子,一個標準的Javabean。一個典型的Javabean一般具有幾個屬性。每個屬性具有一個accessor和mutator(getter和setter)。通常還會有一個toString()方法、一個equals()方法和一個hashCode()方法。初看上去,其中可預見的冗余就已經非常多了。如果每個屬性都具有一個getter和setter,并且通常如此,那么又何必詳細說明呢?

讓我們來看看Lombok。為了消除代碼行,Lombok使用注釋來標識類和Java代碼塊。在前述的那個Javabean示例中,所有的getter、setter以及其他三個方法都是在編譯時被暗示并包括進來的。

而且更好的是如果您使用的是Eclipse或IBM®WebSphere®StudioApplicationDeveloper(如果還沒用的話,建議最好使用),您就可以將Lombok集成到Java項目并即刻獲得開發時結果。換言之,Eclipse編譯器可以立即識別所暗指的getters/setters,而其他Java代碼則可引用這些方法。

最直接的好處當然是代碼行的減少,這真的很棒。并且,如果有一個特定的getter或setter需要特別的注意,那么您就不必為了找到這個特定的getter或setter而遍歷數十行代碼。代碼也會更為簡潔并且冗余也少了。

Lombok還讓您得以簡化代碼的其他部分—不僅僅是Javabean。比如,還可以減少try/catch/finally塊內以及同步方法內的冗余代碼。現在,我們來看看在您自己的開發環境中如何能實現上述目的。

安裝Lombok

要進行安裝,本文假設您使用的是Eclipse或WebSphereStudioApplicationDeveloper。如果不是,您仍可使用Lombok;但是不能享用開發時的種種益處。不過,您仍然可以享用編譯時的益處。首先,打開您的瀏覽器并將URL指向http://projectlombok.org/。

在撰寫本文之時,用這個URL打開的頁面的右上角會出現一個很大的單詞。這個單詞是“Download”。單擊該單詞并開始下載lombok.jar。此文件無需解壓縮,而從其他站點下載的文件中,99%都需要解壓縮。

下載此文件后,需要執行這個JAR文件。在您的操作系統中打開一個提示符,進入到安裝了lombok.jar的那個目錄,并鍵入java-jarlombok.jar。以上假設在您的路徑內已經有JavaRuntimeEnvironment(JRE)。如果沒有,需要添加它。如果要了解如何添加,可以參考針對您的具體操作系統的相關文檔。如果您使用的是Microsoft®Windows®,那么還可以雙擊這個lombok.jar圖標。同樣地,您必須能夠從您的圖形用戶界面(GUI)執行JAR。

不管采取何種方式,應該最終都能看到一個Lombok安裝屏幕。該屏幕會提問Eclipse或WebSphereStudioApplicationDeveloper可執行文件位于何處。它的默認位置有可能是正確的。但有時可能需要更改這個默認位置。單擊Install/Update,Lombok會被迅速并入Eclipse開發環境。如果已經運行了Eclipse,那么就需要關閉它并重啟。

使用Lombok

現在,就可以在Eclipse或WebSphereStudioApplicationDeveloper內開始使用Lombok了。請參考清單1內的代碼。

  1. 清單1.Javabean的一個良好開端  
  2. publicclassLure{  
  3.  privateStringname;  
  4.  privateintsize;  
  5.  privateStringcolor;  
  6.  privateStringstyle;  

以上是一個簡單的Javabean的典型開始。從這里,可以為每個屬性添加getters和setters。然后再添加一個equals()方法、一個toString()方法和一個hashCode()方法。有了Lombok,您無需自己完成上述操作。相反,您只需添加一個注釋:@Data。沒錯,就這么簡單。清單2中包括了@Data。

  1. 清單2.Javabean的一個更好的開端  
  2. importlombok.Data  
  3. public@DataclassLure{  
  4.  privateStringname;  
  5.  privateintsize;  
  6.  privateStringcolor;  
  7.  privateStringstyle;  

不過請記住,只有當lombok.jar位于您的構建路徑且lombok.Data被導入到這個Java類時,上述代碼才會奏效。如果在Eclipse或WebSphereStudioApplicationDeveloper內查看這個類的概要(通常位于屏幕上這個類的右側),就能看到這些方法會被自動添加到這個Lure類。

若不能立即看到這個概要,可以單擊Eclipse內的Window菜單,然后選擇ShowView。從所出現的彈出菜單中,選擇Outline,它應該出現在屏幕的右側。強制顯示類的概要的熱鍵組合是Alt+Shift+Q,然后是O。

如果您編寫了另一個類來實例化Lure,您將能立刻擁有對Lure所暗指的方法(比如getName()或setSize())的訪問。您還能擁有對equals()、hashCode()和toString()的訪問。很棒,對吧?

如果您使用的不是Eclipse或WebSphereStudioApplicationDeveloper,那么所暗指的這些方法添加只有在實際編譯這些代碼時才能被認可。所以雖然在沒有Eclipse或WebSphereStudioApplicationDeveloper時仍可以使用Lombok,但Lombok最初的設計目的就是與Eclipse或WebSphereStudioApplicationDeveloper相集成。

在生成getter/setter方法時,Lombok遵從傳統的標準。所有這些方法名都以get或set開頭并且屬性名都是大寫的。當然,如果屬性是一個Boolean,情況例外。在這種情況下,getter以is開始,而非get。這是Javabean的一種標準實踐。

現在,假設有一個Javabean對您的一個getter具有特殊要求。在清單2的例子中,getStyle()可能返回顏色和大小的組合。在這種情況下,可以按自己的意愿編寫getStyle()方法的代碼。Lombok檢查您的代碼并且不會基于這個屬性創建其自己的getStyle版本。又假設,您有一個getter方法不想公開。為此,Lombok讓您可以輸入一個附加參數。清單3給出了一個定制的修飾符(modifier)。

  1. 清單3.一個定制的修飾符  
  2. privateStringname;  
  3. @Getter(AccessLevel.PROTECTED)privateintsize;  
  4. privateStringcolor;  
  5. privateStringstyle; 

在本例中,getSize()方法將不會被公開。它具有一個受保護的修飾符,所以它只對派生子類可用并且在Lure類本身的內部。您可能并不總是想接受Lombok為您提供的其他默認值。比如,toString()方法會列出類名以及所有的屬性名和值,中間以逗號分割。這個列表出現在類名的旁邊。比如,假設在記錄這個Lure類時,您并不關心顏色。為了更改toString()的默認設置,需要使用ToString注釋。 #p#

  1. 清單4.修改toString()  
  2. @ToString(exclude="color")  
  3. public@DataclassLure{  
  4.  privateStringname;  
  5.  privateintsize;  
  6.  privateStringcolor;  
  7.  privateStringstyle;  

若輸出一個實例化了的Lure類,它應該看上去類似于:

  1. Lure(name=Wishy-Washy,size=1,style=trolling)
  2.  

注意到顏色沒有被包括?這是因為您之前用注釋告訴過Lombok不包括顏色。您還可以修改equals()和hashCode()方法該如何被處理。清單5很直白,不需要過多解釋。

  1. 清單5.修改hashCode()  
  2. @EqualsAndHashCode(exclude="style")  
  3. public@DataclassLure{  
  4.  privateStringname;  
  5.  privateintsize;  
  6.  privateStringcolor;  
  7.  privateStringstyle;  

在本例中,當equals()和hashCode()方法生成時,style屬性并沒有被包括。

其他特性

您是不是也一直非常痛恨編寫try/catch/finally塊呢?我是這樣的。幸運的是,有了Lombok,您無需這么做了。這也是Lombok消除Java冗余的另一種方式。為了消除try/catch/finally塊的冗余,只需使用@Cleanup注釋。參見清單6。

  1. 清單6.使用@Cleanup注釋  
  2. publicstaticvoidmain(String[]args)throwsIOException{  
  3. @CleanupInputStreamin=newFileInputStream(args[0]);  
  4. @CleanupOutputStreamout=newFileOutputStream(args[1]);  
  5. //writefilecodegoeshere  

上述代碼較我們通常在標準Java代碼內看到的整潔了很多。請注意您還是需要拋出由被調用代碼捕獲的異常(在本例中,為IOException)。清單6中的這個代碼塊不僅消除了try/catch/finally塊,而且還關閉了開放流。如果您處理的對象使用一個方法而不是close()來釋放資源,那么就需要用一個帶附加說明的注釋調用該方法。比如,@Cleanup("relinquish")。Lombok還可以減少同步方法所需的代碼的冗余。很自然,這是用@Synchronized方法實現的。

  1. 清單7.使用@Synchronized注釋  
  2. @Synchronized  
  3. privateintfoo(){  
  4.  //somemagicdonehere  
  5.  return1;  

在本例中,Lombok會自動創建一個名為$lock的實例對象,并會針對該對象同步方法foo()。如果用@Synchronized注釋的這個方法是靜態的,那么Lombok就會創建一個名為$LOCK的類對象,并會針對該對象同步這個方法。您還可以指定一個對象用以通過一個附加參數進行顯式的鎖定。比如,@Synchronized("myObject")會針對對象myObject同步這個方法。在這種情況下,必須顯式地定義它。

結束語

使用Lombok,可以實現所有應用程序開發人員都竭盡全力實現的一個目標:消除冗余。

您還可以讓您的代碼可讀性更好。在Javabean內尋找“特殊”(即不遵循典型的標準)的具有大量屬性的getter和setter方法將更為簡便。這是因為只有這些特殊的getter/setter方法是需要被實際編碼的。Lombok有助于代碼的整潔、效率的提高以及冗余的減少。為何不在您自己的環境內嘗試一下呢?

【編輯推薦】

  1. Java編程語言的優點快遞
  2. JavaBean的任務和設計注意事項
  3. 自學Javabean迅速成為Java高手
  4. 在JSP頁面中的應用JavaBean
  5. JSP+JavaBean+Servlet工作原理實例講解
責任編輯:王曉東 來源: IBM
相關推薦

2012-07-27 10:30:12

重構

2013-09-05 09:50:11

C++代碼優化

2020-11-10 08:54:55

Lombok

2010-12-30 10:10:06

NetLinux學習

2019-12-12 10:46:15

Kubernetes容器系統

2024-02-19 07:30:00

AI模型

2022-07-22 08:18:28

JARJava對象

2022-04-27 09:39:11

Mixin工具

2019-01-29 18:29:26

區塊鏈區塊鏈技術網絡信任

2022-04-29 14:19:10

網絡專家網絡攻擊

2009-07-02 16:36:58

Python程序

2010-05-04 16:39:04

華為印度禁華

2022-12-30 11:05:40

Rust代碼

2025-07-28 05:00:00

知識圖譜AI人工智能

2016-12-06 20:03:48

Flink流處理謬見

2016-12-05 14:03:07

Flink大數據

2025-06-30 00:01:00

Node.js?Go線程

2010-08-26 13:38:45

DHCP冗余

2012-04-29 10:56:34

APP

2017-09-25 10:51:16

替換字體方式
點贊
收藏

51CTO技術棧公眾號

视频在线观看99| 欧美视频你懂的| 国产一区二区高清视频| 欧美日韩精品区| 国产剧情在线观看一区| 欧美精品乱人伦久久久久久| 欧美a级免费视频| 日本在线视频1区| 久久国产福利国产秒拍| 久久久久久久成人| 日本黄色激情视频| 精品久久对白| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 2021狠狠干| 久久久久久久影视| 国产精品一品二品| 国产高清视频一区三区| 麻豆疯狂做受xxxx高潮视频| 狠狠做深爱婷婷综合一区| 日韩精品专区在线| 国产精品久久a| 成人ssswww在线播放| **网站欧美大片在线观看| 国产亚洲二区| 99热这里只有精品66| 日韩精品一级中文字幕精品视频免费观看 | 国产高清成人久久| 亚洲国产91视频| 色哟哟欧美精品| 精品国产av无码一区二区三区| 高清av电影在线观看| kk眼镜猥琐国模调教系列一区二区| 国产精品日韩久久久久| 成人毛片18女人毛片| 欧美精品18| 精品国产一区久久久| 老头老太做爰xxx视频| 亚洲免费观看高清完整版在线观| 欧美成人精品二区三区99精品| www.99r| 国产成+人+综合+亚洲欧美| 色综合久久88色综合天天免费| 99色这里只有精品| av在线网址观看| 亚洲手机成人高清视频| 免费电影一区| 亚洲人午夜射精精品日韩| 成人永久免费视频| 懂色一区二区三区av片| www.亚洲黄色| 国产精品网址在线| 91中文字精品一区二区| 欧美成人一区二区视频| 日韩电影一区二区三区四区| 欧美一级大片视频| 成人免费视频毛片| 亚洲深夜影院| 欧美一性一乱一交一视频| 亚洲永久精品在线观看| 久久xxxx精品视频| 日本亚洲欧洲色α| 亚洲 国产 日韩 欧美| 日韩精品欧美精品| 国产精品劲爆视频| 一本久道久久综合无码中文| 久久成人综合网| 成人久久精品视频| 国产黄频在线观看| 成av人片一区二区| 久久爱av电影| 黄色在线免费观看大全| 欧美国产乱子伦| 亚洲午夜在线观看| av在线导航| 亚洲一区二区三区四区在线| 精品视频在线观看一区| 欧美色网一区| 欧美美女一区二区在线观看| 老熟女高潮一区二区三区| 欧美91在线| 国产一区二区动漫| 国产一区二区三区在线视频观看| 欧美日韩综合| 欧美在线亚洲在线| 一级特黄色大片| 成人精品高清在线| 欧美日韩高清在线一区| 美女羞羞视频在线观看| 亚洲国产精品综合小说图片区| 黄在线观看网站| 高清一区二区三区av| 亚洲精品电影在线观看| 久久久久久成人网| 韩国在线一区| 国产精品网红直播| 秋霞网一区二区| 国产精品的网站| 97视频久久久| 999色成人| 精品视频偷偷看在线观看| 蜜桃av免费观看| 宅男噜噜噜66国产日韩在线观看| 国产精品久久久久久婷婷天堂| www.综合色| 国产欧美久久久精品影院| 欧美中日韩在线| 狠狠久久综合| 精品亚洲永久免费精品| 国产av 一区二区三区| 天堂午夜影视日韩欧美一区二区| 亚洲精品日韩激情在线电影| 酒色婷婷桃色成人免费av网| 亚洲最大成人综合| 人人干人人干人人| 欧美在线导航| 欧美高清电影在线看| 性色av一区二区三区四区| 不卡一区二区三区四区| 超碰在线免费观看97| 日韩一区二区三区在线免费观看| 精品国产伦一区二区三区观看体验 | 欧美一级免费播放| crdy在线观看欧美| 中文综合在线观看| 亚洲免费在线视频观看| 成人黄页在线观看| 久久久无码中文字幕久...| 国产一区二区三区朝在线观看| 亚洲高清免费观看高清完整版| 天天做夜夜爱爱爱| 免费成人在线影院| 日本不卡免费新一二三区| 男人天堂视频在线观看| 精品日韩一区二区三区 | 亚洲午夜精品一区二区三区他趣| 一级片视频免费观看| 国产精品美女久久久久久不卡| 91精品国产91久久久久| 欧日韩在线视频| 亚洲妇熟xx妇色黄| 久久久精品人妻一区二区三区| 91久久电影| 91精品国产综合久久香蕉| aiai在线| 欧美视频一区二| 亚洲а∨天堂久久精品2021| 天使萌一区二区三区免费观看| 精品国产区在线| 欧美aa免费在线| 日韩国产在线播放| 天天爽夜夜爽夜夜爽精品| 99这里只有久久精品视频| 男女激情无遮挡| 欧美综合自拍| 国产97免费视| av黄色在线观看| 欧美日韩一区二区三区视频| 中国1级黄色片| 国产制服丝袜一区| 国产午夜精品视频一区二区三区| 日本免费精品| 国内偷自视频区视频综合| 四季av日韩精品一区| 欧美色视频日本版| 国产又粗又黄又猛| 激情欧美日韩一区二区| 丁香婷婷综合激情| 久久香蕉网站| 国产精品第一页在线| fc2在线中文字幕| 欧美一区二区三区电影| 九九热国产视频| 久久精品一区二区三区四区| 污网站免费在线| 欧美日韩1区| 美乳视频一区二区| 韩国精品视频在线观看| 九九精品在线播放| 亚洲欧美日韩精品永久在线| 欧美亚洲综合另类| 免费三级在线观看| av成人老司机| 免费涩涩18网站入口| 女生裸体视频一区二区三区 | 精品一区av| 91中文在线观看| 特黄毛片在线观看| 色青青草原桃花久久综合| 亚洲精品无amm毛片| 色94色欧美sute亚洲线路二| 91精品少妇一区二区三区蜜桃臀| 成人激情综合网站| 成人精品视频一区二区| 在线免费观看日本欧美爱情大片| 精品欧美国产| 一区二区三区无毛| 欧美综合第一页| 超鹏97在线| 亚洲日本欧美日韩高观看| 99这里有精品视频| 色婷婷亚洲一区二区三区| 麻豆亚洲av熟女国产一区二| 中文字幕电影一区| 亚洲天堂美女视频| 九色porny丨国产精品| 九九九九免费视频| 欧美人成网站| 亚洲精品不卡| 美女久久久久| 国产女主播一区二区| 色狠狠一区二区三区| 欧美最猛性xxxxx免费| 日本大胆在线观看| 中文字幕免费国产精品| 色视频精品视频在线观看| 91精品蜜臀在线一区尤物| 国产精品久久久久久久久夜色| 亚洲一区二区高清| 夫妻性生活毛片| 国产午夜精品一区二区| 国产麻豆剧传媒精品国产av| 国产在线播放一区| 中文字幕永久有效| 久久亚洲二区| 无码aⅴ精品一区二区三区浪潮| 国产一区视频在线观看免费| 国产对白在线播放| 成人av资源电影网站| 欧美色图亚洲自拍| 羞羞色国产精品网站| 国产精品中出一区二区三区| 日韩一区二区三区色| 91免费看片网站| 亚洲综合伊人| 成人久久久久爱| 9999在线精品视频| 91精品视频大全| 亚洲青青久久| 91亚洲va在线va天堂va国 | 男女免费观看在线爽爽爽视频| 久久久国产一区二区| 伊人在线视频| 日日狠狠久久偷偷四色综合免费| 大乳在线免费观看| 国产一区二区三区精品久久久| 精品999视频| 亚洲人成在线观看| 国产综合在线观看| 一区二区三区日韩在线| 第一福利在线| 中文字幕一区二区精品| 中文字幕在线播放| 久久久精品国产亚洲| h视频在线免费观看| 久久这里有精品视频| 色yeye免费人成网站在线观看| 欧美猛少妇色xxxxx| 超碰97免费在线| 97视频免费看| 浪潮色综合久久天堂| 国产一区视频在线| 国产一区二区三区亚洲综合 | 熟妇人妻系列aⅴ无码专区友真希| 日韩成人黄色av| 国产大学生校花援交在线播放 | 天天操夜夜操av| 亚洲品质自拍视频网站| 久久久国产精品黄毛片| 婷婷中文字幕综合| 国产成人精品777777| 欧美日本在线视频| www.综合色| 亚洲精品网站在线播放gif| 在线免费黄色| 欧美激情综合色综合啪啪五月| 国产va在线视频| 国产精品亚洲网站| 亚洲三级av| 欧美动漫一区二区| 婷婷伊人综合| 日本a视频在线观看| 日韩av网站在线观看| 午夜福利123| 久久这里只有精品首页| av资源在线免费观看| 亚洲国产欧美在线人成| 亚洲av人无码激艳猛片服务器| 日韩午夜在线影院| 九色视频成人自拍| 欧美日韩成人网| 亚洲综合在线电影| 91久久精品国产91久久性色tv| 亚洲第一二三区| 8x8x华人在线| 视频在线在亚洲| 婷婷五月精品中文字幕| 中文字幕精品综合| 国产91av视频| 91精品在线观看入口| 国产永久免费高清在线观看| 欧美国产视频一区二区| 成人自拍视频网| 精品视频在线观看| 自产国语精品视频| 91香蕉视频污版| 99精品热视频| 欧美日韩成人免费观看| 欧美性色黄大片| 青青草视频在线免费观看| 欧美高清不卡在线| 只有精品亚洲| 日韩性感在线| 亚洲综合电影一区二区三区| 被黑人猛躁10次高潮视频| 国产精品系列在线| 91午夜视频在线观看| 日韩三级av在线播放| 97最新国自产拍视频在线完整在线看| 69精品小视频| 大桥未久女教师av一区二区| 国产成年人在线观看| 蜜臀av性久久久久蜜臀av麻豆| 国产福利短视频| 亚洲成人免费在线| 国产福利视频导航| 久久视频精品在线| 国产精品天堂蜜av在线播放| 日本一区视频在线| 久久在线精品| 国产熟妇久久777777| 日韩欧美aaa| 视频一区二区在线播放| 久久久久久一区二区三区 | 精品福利一二区| 污污的视频在线观看| 91精品天堂| 欧美69wwwcom| 久久久久99人妻一区二区三区| 亚洲女人的天堂| h狠狠躁死你h高h| 欧美日韩福利在线观看| 免费精品一区二区三区在线观看| 国产精品h视频| 精品一区二区三区在线观看| 秋霞欧美一区二区三区视频免费| 欧美日韩一二三| 久草免费在线| 亚洲一区美女视频在线观看免费| 久久久久美女| 三级网站免费看| 亚洲一区二区三区不卡国产欧美 | 97aⅴ精品视频一二三区| 国产无套粉嫩白浆内谢| 欧美成人aa大片| 成年人黄色大片在线| 欧美大陆一区二区| 日韩激情在线观看| 中国美女黄色一级片| 欧美一级xxx| 99爱在线视频| 欧美一进一出视频| 奇米精品一区二区三区在线观看一| 亚洲一二三精品| 欧美一区二区三区啪啪| 岛国在线视频网站| 欧美日本韩国国产| 美洲天堂一区二卡三卡四卡视频| 日韩精品一区二区三区在线视频| 欧美一区二区三区视频免费播放 | 午夜伊人狠狠久久| 免费在线黄色网址| 国产在线观看精品| 欧美性色综合| 国产精品815.cc红桃| 欧美色大人视频| 日本伦理一区二区| 免费看成人午夜电影| 激情五月激情综合网| 亚洲国产精品午夜在线观看| 国产亚洲欧美日韩一区二区| 日韩亚洲国产免费| 日韩国产欧美亚洲| 国产精品久久久久aaaa| 成人爽a毛片一区二区| 国产z一区二区三区| 欧美午夜电影在线观看| 久久中文字幕精品| 精品久久久久久最新网址| 日韩成人影音| 国产 欧美 日本| 国产人成亚洲第一网站在线播放 | 成人午夜在线播放| 亚洲精品无码久久久久| 欧美激情性做爰免费视频| 成人3d动漫在线观看| 国产av一区二区三区传媒| 欧美午夜精品久久久久久孕妇| 暖暖在线中文免费日本| 午夜视频久久久| 91丨porny丨国产|