Lombok怎么在java中使用?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
創(chuàng)新互聯(lián)公司2013年成立,先為農(nóng)安等服務(wù)建站,農(nóng)安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為農(nóng)安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
Lombok是什么?
Lombok是一個(gè)通過注解以達(dá)到減少代碼的Java庫,如通過注解的方式減少get,set方法,構(gòu)造方法等。
如何安裝Lombok?
如何安裝使用Lombok呢?
方法一
通過向lib文件夾中添加lombok.jar包即可,
方法二
如果使用的是Maven,則可在項(xiàng)目的pom.xml文件中添加以下依賴:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.12</version> </dependency>
通過以上兩種方法的確可以使用Lombok的相關(guān)API了,但無論是Intelij idea,還是Eclipse默認(rèn)情況下是不能識別的,我們還要讓idea識別起來。
Intellij Idea方法:
File->settings->Plugins->Browse repositories->Lombok
如何使用Lombok?
Lombok提供注解方式來提高代碼的簡潔性,常用注解有:
@Data
@Setter @Getter
@NonNull
@Synchronized
@ToString
@EqualsAndHashCode
@Cleanup
@SneakyThrows
下面分別介紹每個(gè)方法的作用以及對應(yīng)的源代碼 @Data
該注解相當(dāng)于同時(shí)加上以下注解@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; }
等價(jià)源碼:
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
該注解自動添加到同步機(jī)制,有趣的是,生成的代碼并不是直接鎖方法,而是鎖代碼塊, 作用范圍是方法上
使用方法:
private DateFormat format = new SimpleDateFormat("MM-dd-YYYY"); @Synchronized public String synchronizedFormat(Date date) { return format.format(date); }
生成等價(jià)源碼:
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
該方法大家應(yīng)該非常熟悉,但需要注意的是:@ToString有多個(gè)屬性可以進(jìn)一步設(shè)置:
callSuper 是否輸出父類的toString方法,默認(rèn)為false
includeFieldNames 是否包含字段名稱,默認(rèn)為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; }
等價(jià)源碼:
public String toString() { return "Person{" + "address='" + address + '\'' + '}'; }
@Cleanup
注釋可用于確保已分配的資源被釋放,如IO的連接關(guān)閉。
使用方法:
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(); } }
等價(jià)源碼:
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(); } }
看完上述內(nèi)容,你們掌握Lombok怎么在java中使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
當(dāng)前標(biāo)題:Lombok怎么在java中使用
網(wǎng)址分享:http://jinyejixie.com/article26/jjhecg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、品牌網(wǎng)站制作、定制網(wǎng)站、品牌網(wǎng)站建設(shè)、電子商務(wù)、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)