开发环境中实现Lombok消除Java冗余
生活随笔
收集整理的這篇文章主要介紹了
开发环境中实现Lombok消除Java冗余
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Lombok是一種JavaArchive(JAR)文件,可用來(lái)消除Java代碼的冗長(zhǎng)。通過(guò)在開發(fā)環(huán)境中實(shí)現(xiàn)Lombok,開發(fā)人員可以節(jié)省構(gòu)建諸如hashCode()和equals()這樣的方法以及以往用來(lái)分類各種accessor和mutator的大量時(shí)間。 我們看這樣一個(gè)例子,一個(gè)標(biāo)準(zhǔn)的Javabean。一個(gè)典型的Javabean一般具有幾個(gè)屬性。每個(gè)屬性具有一個(gè)accessor和mutator(getter和setter)。通常還會(huì)有一個(gè)toString()方法、一個(gè)equals()方法和一個(gè)hashCode()方法。初看上去,其中可預(yù)見的冗余就已經(jīng)非常多了。如果每個(gè)屬性都具有一個(gè)getter和setter,并且通常如此,那么又何必詳細(xì)說(shuō)明呢? 讓我們來(lái)看看Lombok。為了消除代碼行,Lombok使用注釋來(lái)標(biāo)識(shí)類和Java代碼塊。在前述的那個(gè)Javabean示例中,所有的getter、setter以及其他三個(gè)方法都是在編譯時(shí)被暗示并包括進(jìn)來(lái)的。 而且更好的是如果您使用的是Eclipse或IBM?WebSphere?StudioApplicationDeveloper(如果還沒用的話,建議最好使用),您就可以將Lombok集成到Java項(xiàng)目并即刻獲得開發(fā)時(shí)結(jié)果。換言之,Eclipse編譯器可以立即識(shí)別所暗指的getters/setters,而其他Java代碼則可引用這些方法。 最直接的好處當(dāng)然是代碼行的減少,這真的很棒。并且,如果有一個(gè)特定的getter或setter需要特別的注意,那么您就不必為了找到這個(gè)特定的getter或setter而遍歷數(shù)十行代碼。代碼也會(huì)更為簡(jiǎn)潔并且冗余也少了。 Lombok還讓您得以簡(jiǎn)化代碼的其他部分—不僅僅是Javabean。比如,還可以減少try/catch/finally塊內(nèi)以及同步方法內(nèi)的冗余代碼?,F(xiàn)在,我們來(lái)看看在您自己的開發(fā)環(huán)境中如何能實(shí)現(xiàn)上述目的。 安裝Lombok 要進(jìn)行安裝,本文假設(shè)您使用的是Eclipse或WebSphereStudioApplicationDeveloper。如果不是,您仍可使用Lombok;但是不能享用開發(fā)時(shí)的種種益處。不過(guò),您仍然可以享用編譯時(shí)的益處。首先,打開您的瀏覽器并將URL指向http://projectlombok.org/。 在撰寫本文之時(shí),用這個(gè)URL打開的頁(yè)面的右上角會(huì)出現(xiàn)一個(gè)很大的單詞。這個(gè)單詞是“Download”。單擊該單詞并開始下載lombok.jar。此文件無(wú)需解壓縮,而從其他站點(diǎn)下載的文件中,99%都需要解壓縮。 下載此文件后,需要執(zhí)行這個(gè)JAR文件。在您的操作系統(tǒng)中打開一個(gè)提示符,進(jìn)入到安裝了lombok.jar的那個(gè)目錄,并鍵入java-jarlombok.jar。以上假設(shè)在您的路徑內(nèi)已經(jīng)有JavaRuntimeEnvironment(JRE)。如果沒有,需要添加它。如果要了解如何添加,可以參考針對(duì)您的具體操作系統(tǒng)的相關(guān)文檔。如果您使用的是Microsoft?Windows?,那么還可以雙擊這個(gè)lombok.jar圖標(biāo)。同樣地,您必須能夠從您的圖形用戶界面(GUI)執(zhí)行JAR。 不管采取何種方式,應(yīng)該最終都能看到一個(gè)Lombok安裝屏幕。該屏幕會(huì)提問Eclipse或WebSphereStudioApplicationDeveloper可執(zhí)行文件位于何處。它的默認(rèn)位置有可能是正確的。但有時(shí)可能需要更改這個(gè)默認(rèn)位置。單擊Install/Update,Lombok會(huì)被迅速并入Eclipse開發(fā)環(huán)境。如果已經(jīng)運(yùn)行了Eclipse,那么就需要關(guān)閉它并重啟。 使用Lombok 現(xiàn)在,就可以在Eclipse或WebSphereStudioApplicationDeveloper內(nèi)開始使用Lombok了。請(qǐng)參考清單1內(nèi)的代碼。清單1.Javabean的一個(gè)良好開端 ? publicclassLure{ ? ?privateStringname; ? ?privateintsize; ? ?privateStringcolor; ? ?privateStringstyle; ? }? 以上是一個(gè)簡(jiǎn)單的Javabean的典型開始。從這里,可以為每個(gè)屬性添加getters和setters。然后再添加一個(gè)equals()方法、一個(gè)toString()方法和一個(gè)hashCode()方法。有了Lombok,您無(wú)需自己完成上述操作。相反,您只需添加一個(gè)注釋:@Data。沒錯(cuò),就這么簡(jiǎn)單。清單2中包括了@Data。清單2.Javabean的一個(gè)更好的開端 ? importlombok.Data ? public@DataclassLure{ ? ?privateStringname; ? ?privateintsize; ? ?privateStringcolor; ? ?privateStringstyle; ? }? 不過(guò)請(qǐng)記住,只有當(dāng)lombok.jar位于您的構(gòu)建路徑且lombok.Data被導(dǎo)入到這個(gè)Java類時(shí),上述代碼才會(huì)奏效。如果在Eclipse或WebSphereStudioApplicationDeveloper內(nèi)查看這個(gè)類的概要(通常位于屏幕上這個(gè)類的右側(cè)),就能看到這些方法會(huì)被自動(dòng)添加到這個(gè)Lure類。 若不能立即看到這個(gè)概要,可以單擊Eclipse內(nèi)的Window菜單,然后選擇ShowView。從所出現(xiàn)的彈出菜單中,選擇Outline,它應(yīng)該出現(xiàn)在屏幕的右側(cè)。強(qiáng)制顯示類的概要的熱鍵組合是Alt+Shift+Q,然后是O。 如果您編寫了另一個(gè)類來(lái)實(shí)例化Lure,您將能立刻擁有對(duì)Lure所暗指的方法(比如getName()或setSize())的訪問。您還能擁有對(duì)equals()、hashCode()和toString()的訪問。很棒,對(duì)吧? 如果您使用的不是Eclipse或WebSphereStudioApplicationDeveloper,那么所暗指的這些方法添加只有在實(shí)際編譯這些代碼時(shí)才能被認(rèn)可。所以雖然在沒有Eclipse或WebSphereStudioApplicationDeveloper時(shí)仍可以使用Lombok,但Lombok最初的設(shè)計(jì)目的就是與Eclipse或WebSphereStudioApplicationDeveloper相集成。 在生成getter/setter方法時(shí),Lombok遵從傳統(tǒng)的標(biāo)準(zhǔn)。所有這些方法名都以get或set開頭并且屬性名都是大寫的。當(dāng)然,如果屬性是一個(gè)Boolean,情況例外。在這種情況下,getter以is開始,而非get。這是Javabean的一種標(biāo)準(zhǔn)實(shí)踐。 現(xiàn)在,假設(shè)有一個(gè)Javabean對(duì)您的一個(gè)getter具有特殊要求。在清單2的例子中,getStyle()可能返回顏色和大小的組合。在這種情況下,可以按自己的意愿編寫getStyle()方法的代碼。Lombok檢查您的代碼并且不會(huì)基于這個(gè)屬性創(chuàng)建其自己的getStyle版本。又假設(shè),您有一個(gè)getter方法不想公開。為此,Lombok讓您可以輸入一個(gè)附加參數(shù)。清單3給出了一個(gè)定制的修飾符(modifier)。清單3.一個(gè)定制的修飾符 ? privateStringname; ? @Getter(AccessLevel.PROTECTED)privateintsize; ? privateStringcolor; ? privateStringstyle;? 在本例中,getSize()方法將不會(huì)被公開。它具有一個(gè)受保護(hù)的修飾符,所以它只對(duì)派生子類可用并且在Lure類本身的內(nèi)部。您可能并不總是想接受Lombok為您提供的其他默認(rèn)值。比如,toString()方法會(huì)列出類名以及所有的屬性名和值,中間以逗號(hào)分割。這個(gè)列表出現(xiàn)在類名的旁邊。比如,假設(shè)在記錄這個(gè)Lure類時(shí),您并不關(guān)心顏色。為了更改toString()的默認(rèn)設(shè)置,需要使用ToString注釋。
轉(zhuǎn)載于:https://blog.51cto.com/tdshzd01/296351
總結(jié)
以上是生活随笔為你收集整理的开发环境中实现Lombok消除Java冗余的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 试用版office 2010中提示Err
- 下一篇: 刷手机困了再睡会更好吗?