程序員經常會遇到靈魂拷問:你有對象嗎殴瘦?
即使沒有,咱們也有辦法号杠,可以自己去new一個對象蚪腋。
先來一個要求簡單一點的對象。
沒問題姨蟋,老鐵屉凯!但如果對象的屬性太多,咋辦眼溶?
MyGirlFriend 是很美悠砚,但寫起來也太麻煩了吧。有沒有簡單一點的方式呢堂飞?
OK灌旧,既然這么問,那肯定是有的绰筛,今天介紹一種基于Lombok中@Builder用法枢泰。
一、建造者模式簡介
Lombok中@Builder這種方式稱為建造者模式铝噩。通俗的講衡蚂,就是簡單粗暴一步步的new一個對象,它對用戶屏蔽了里面構建的細節(jié)骏庸,看不到這些細節(jié)毛甲,但是卻可以精細地控制對象的真?zhèn)€構造過程。
@Builder注解簡化了代碼的開發(fā)具被,更加優(yōu)雅的創(chuàng)建java對象玻募,不需要寫多余并且重復的代碼,對于開發(fā)人員來說一姿,能有效簡化一行代碼都是好事七咧。在出現lombok之后改执,對象的創(chuàng)建工作提供了提供Builder方法。這種方式坑雅,對外保持private辈挂,而對屬性的賦值采用Builder的方式,這種方式更加符合面向對象的思想裹粤,簡單易讀终蒂。
二、注解類Builder.java注釋:
三遥诉、@Builder的作用:
(1)生成一個全屬性的構造器拇泣;
(2)生成了一個返回靜態(tài)內部類PersonBuilder對象的方法;
(3)生成了一個靜態(tài)內部類PersonBuilder矮锈,這個靜態(tài)內部類包含Person類的三個屬性霉翔,無參構造器,三個方法名為屬性名的方法苞笨,返回Person對象的build方法债朵,輸出靜態(tài)內部類三個屬性的toString()方法;
四瀑凝、建造者使用過程:
1序芦、首先pom.xml引入依賴
<dependency>
? ? <groupId>org.projectlombok</groupId>
? ? <artifactId>lombok</artifactId>
? ? <version>0.10.2</version>
</dependency>
再看一下我們新建清爽的實體類:
@Builder聲明實體,表示可以進行Builder方式初始化粤咪。
我們來給實體類賦值@Builder注解賦值新對象:
先實例化內部類對象并返回谚中,然后為調用內部類的方法為內部類的屬性賦值,build()方法就是將內部類MyGirlFriendBuilder的屬性值傳入MyGirlFriend構造器中寥枝,實例化MyGirlFriend對象宪塔。
以上即為對于@Builder的簡單使用,你學會怎么快速自己新建一個對象了嗎囊拜?