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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java get set 注解_java技能提升,用Lombok甩掉get和set,让代码变得更简洁

發(fā)布時間:2024/7/23 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java get set 注解_java技能提升,用Lombok甩掉get和set,让代码变得更简洁 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

前幾天有個新來的同事(實習生)驚訝的對我說:我們的代碼里好多錯誤,我的程序本地都啟動不了。

我一臉懵逼的質(zhì)問他:目前線上的代碼,怎么會有問題嗎?

他不服氣的說:你來看嘛,就是有問題,Dao實體get()和set()方法都沒有。

此處省略10000字,讓我流一會兒技術人的眼淚。

Lombok

通常我們代碼里的實體Dao或者自定義Bean都會有get()和set()方法,set是設置的意思,而get是獲取的意思,顧名思義,這兩個方法是對數(shù)據(jù)進行設置和獲取用的。一般來說set和get方法都是對私有域變量進行操作的,所以大多數(shù)都是使用在包含特定屬性的類實體中。

現(xiàn)實中有說許多看到密密麻麻的get()和set()就會頭疼,但現(xiàn)在有了Lombok,它提供了簡單的注解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 java 代碼。通過使用對應的注解,可以在編譯源碼的時候生成對應的方法,所以不會影響任何運行效率。

但也許有的人由于習慣問題,看不到get()和set()也會缺乏一些安全感。

傳統(tǒng)set和get方法

既然是實體,里面少不了要定義變量,而實體變量的值的設置和獲取,由set()和get()方法實現(xiàn)。標準set和get方法定義如下:

public class MedalinfoVo {private Long id;private String medalname;private String icon;private Integer isLight;private Integer medallevel;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getMedalname() {return medalname;}public void setMedalname(String medalname) {this.medalname = medalname;}public String getIcon() {return icon;}public void setIcon(String icon) {this.icon = icon;}public Integer getIsLight() {return isLight;}public void setIsLight(Integer isLight) {this.isLight = isLight;}public Integer getMedallevel() {return medallevel;}public void setMedallevel(Integer medallevel) {this.medallevel = medallevel;}}

方法setXxx()參數(shù)為該變量的值,即我們在給該變量定義值的時候設置的。

方法getXxx()無參,直接返回該變量的在主內(nèi)存的值。

可以看到滿篇的set和get方法,如果一個實體有20個變量或以上,那么整個class看起來就會非常長而且臃腫,既沒有技術含量,又影響著代碼的美觀,要增加或修改的時候變得麻煩和易錯。

重要的是set和get方法,也存在線程同步問題。

Lombok的set和get方法

Lombok是一種自動接通你的編輯器和構(gòu)建工具的一個Java庫。lombok其實就是幫助我們編寫getter或者equals方法的一個“工具”。官方網(wǎng)站:Lombok官網(wǎng)

lombok的使用

首先引入maven依賴:

使用了lombok的實體

@Getter@Setterpublic class MedalinfoVo {private Long id;private String medalname;private String icon;private Integer isLight;private Integer medallevel;}

看到?jīng)]有,使用了lombok的實體,變得非常簡潔和美觀,而且執(zhí)行起來效率變得非常快,這是因為lombok庫直接調(diào)用了java源碼類庫而實現(xiàn),具體可以詳看lombok源碼實現(xiàn)。

lombok實現(xiàn)原理

Lombok的基本流程應該基本是這樣:

定義編譯期的注解利用JSR269 api(Pluggable Annotation Processing API )創(chuàng)建編譯期的注解處理器利用tools.jar的javac api處理AST(抽象語法樹)將功能注冊進jar包

只是通過簡單的@Getter @Setter 注解便可以實現(xiàn)變量的set和get方法,除此外還有@ToString、@NoArgsConstructor (構(gòu)造函數(shù))等,諸多注解供你使用,為你節(jié)省大量寶貴時間和代碼提高開發(fā)效率。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的java get set 注解_java技能提升,用Lombok甩掉get和set,让代码变得更简洁的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。