之前的文章里,我曾说过,<em>java</em>中的类是抽象出对象的共同特性的一个类似模板的文件。比如用一个Students类来描述所有学生都有的特性:年龄、性别、班级等。这些特性我们称为类的属性(field)。我们通过new关键字来调
2021-05-27 17:01:10
之前的文章裡,我曾說過,java中的類是抽象出物件的共同特性的一個類似模板的檔案。比如用一個Students類來描述所有學生都有的特性:年齡、性別、班級等。這些特性我們稱為類的屬性(field)。
我們通過new關鍵字來呼叫類的構造方法創建類的例項物件。
類的構造器分為有參構造與無參構造。如果我們使用無參構造創建物件,那麼程式碼的寫法就是這樣的「new Students()」。我們可以通過在類中給屬性設定預設值來保證物件的屬性有值。但是這樣方式有時候並不好用。
為了給物件的屬性賦值,java類提供了setter方法,並提供getter方法從物件中獲取屬性的值。
有時候我們拿到一個java物件,我們需要一次性打印出物件的所有屬性的值,那麼我們就用上了類中重寫的toString方法。該方法能夠讓我們以自己定義的優美格式輸出物件的各個屬性值。
有時候我們可能需要將兩個類型相同的物件進行對比,看看二者是否是一樣的,此時我們用上了類中重寫的equals方法。
此外,還有hashCode方法也很有可能會在特殊的場合需要被我們使用。
由於我們重寫上述方法時,各方法已經有相對來說比較固定的重寫模板(各方法使用場景基本上都比較固定),我們對每個實體類都要重寫這些邏輯固定並且毫無技術含量的程式碼,並因此增加了我們的工作量,實在是一件得不償失的事。
另外,隨著時間的推移,我們的項目可能因為各種各樣的原因出現需求變更,以前編寫的實體類就有可能出現屬性的增加或減少。例如:現在我們班來了個美國學員,考慮到班上的學生已經出現兩種國籍,所以,Students類會增加一個屬性nationality用來描述學生的國籍。由於增加了一個屬性,我們需要增加對應屬性nationality的getter方法、setter方法、equals方法,修改hashCode方法和toString方法。如果後續陸陸續續需要增加屬性,無形之中就增加了許多工作量。
下圖是使用lombok插件與未使用插件時編寫程式碼的風格:
通過對比,我們發現使用了lombok插件的程式碼變得超級簡單,getter方法、setter方法等之前需要我們自己編寫的方法,現在都不需要了,只要在類名的上方加上幾個註解,就搞定。從而讓我們在以後給類新增屬性時,也不需要給每個類新增一堆getter、setter等等方法。
看到這裡,是不是迫不及待想要知道lombok插件是怎樣使用的呢?
別急,想要使用lombok來簡化開發並不難。
01安裝lombok插件
本文以idea2017.2.2版本為開發工具(目前一些比較新的版本的idea已經內建了該插件了)。其他開發工具也很簡單,百度一下有很多教程的。
按照如圖的順序依次點選、搜尋即可。由於我的idea已經安裝過了該插件,所以搜尋出來的是update,代表更新到新版。沒安裝過的idea在搜尋出插件時會顯示install,直接點選install進行安裝即可。安裝完成後需要重啟idea使插件生效。
02開啟 AnnocationProcessors
安裝好lombok之後,插件還不會起到作用。我們需要開啟 AnnocationProcessors來使得插件在編譯階段起作用。(lombok需要在源碼編譯成位元組碼(.class檔案)時幫我們在源碼中加入我們需要的getter、setter、toString等方法,然後在jvm運行位元組碼的階段是用不上這個插件的)
03加入lombok的jar包到項目中
安裝插件之後,我們已經告知idea要使用這個插件。但是插件真正起作用的部分在jar包裡面。匯入jar包的過程如下:
將lombok的jar包放進項目的lib目錄,沒有的話,就新增一個folder。jar包可以在mvnrepository網站下載(maven中央倉庫)。
接下來按照圖中的順序依次操作:
擊(最多18字)
依次進行上述操作後,我們就可以使用lombok插件了。
使用過程很簡單,在需要getter方法的類名上面新增「@Getter」註解,在需要setter方法的類名上面新增「@Setter」註解,如果你需要toString方法,則新增「@ToString」註解。更多介紹請看下圖,各個註解的使用以及用法如下:
到這裡,lombok插件的使用就全部介紹完畢了。小夥伴們,你們學會了嗎?
#Java語言初學#
相關文章
之前的文章里,我曾说过,<em>java</em>中的类是抽象出对象的共同特性的一个类似模板的文件。比如用一个Students类来描述所有学生都有的特性:年龄、性别、班级等。这些特性我们称为类的属性(field)。我们通过new关键字来调
2021-05-27 17:01:10
第一次使用<em>iPhone</em>的小伙伴们看过来,这是非常实用的<em>iPhone</em>设置使用小技巧。这些隐藏功能,你一定要知道!一、新机系统设置 1、开启【查找我的<em>iPhone</em>】设置→点击苹果ID→查找→查找我的<em>iPh
2021-05-27 17:01:02
考虑到小屏手机用户的消费需求,苹果2020年4月推出了<em>iPhone</em>SE2,和<em>iPhone</em>6一样的外观设计,加上性能强劲的A13处理器,轻薄的机身,舒适的手感,更因为<em>iPhone</em>SE系列超高的性价比,让<em>iPhone</em>SE2
2021-05-27 17:00:55
而苹果公司是一个特例,直到2020年10月苹果公司才推出第一款5G智能手机:<em>iPhone</em>12。这款手机一问世就封神! 姗姗来迟的<em>iPhone</em>12系列搭载了苹果自家的A14 Bionic芯片,后置双摄像头,支持北斗导航。<em>
2021-05-27 17:00:50
周新宇同学作为班里的学霸,如数家珍一般地介绍了专业所安排的课程:游戏分析课、游戏设计艺术、游戏制作的本质、Java、C++、<em>Python</em>等等。“我们的课程看上去都是和游戏相关,但是没有一个是教我们怎么去玩游
2021-05-27 17:00:35
八年级新增<em>Python</em>内容,大数据、人工智能、程序设计与算法按照教材规划五六年级开始接触。 而在浙江公布将开启新高考模式的2013年,其实已经把编程纳入了选考科目范围内了。 新增多项“智能化”专业 据统计,2
2021-05-27 17:00:29