你還在new對象嗎?lombok的Builder瞭解一下?

前言

我們寫代碼如果要創建一個對象一般會使用new的方式,
若是對象有屬性,則使用set方法進行復制,
例如:

Student student = new Student();
student.setName("zhangsan");
student.setAge(18);
...

這種是可以的,但是如果我們對象的屬性值有很多呢?
你想想,就這些複製的代碼就會有很多,100個屬性,就要寫100行這種,寫起來太麻煩

有什麼方式可以簡單一點呢?

lombok 瞭解一下

lombok大家都不陌生吧,這個插件幫助我們實現了一些方法,
比如getter和setter方法,構造方法等;

引入lombok:

<dependency> 
	<groupId>org.projectlombok</groupId> 
	<artifactId>lombok</artifactId> 
</dependency>

其中lombok裏面有一個註解:@Builder
這個註解可以幫我們new對象,具體怎麼用呢?

Student.builder()
               .sno( "001" )
               .sname( "admin" )
               .sage( 18 )
               .sphone( "110" )
               .build();

記得最後要有一個build();

是不是很簡單,那我們其實還有默認值,怎麼在Builder中加入字段的默認值呢?

問題一:
因爲這裏有個問題,我們用了Builder的話,在字段上給默認值是無效的,只能重新動這個類?

解決辦法:
lombok有@Builder.Default的註解聲明,註解在需要默認值的字段上即可。

題外話

lombok 其實也非常常用了,但是如果你們公司沒有統一規定使用lombok的話,微服務之間交互可能有問題,這個我還不是很清楚,不過建議大家都用lombok即可;

若是你們公司沒有用lombok,也沒有推薦使用lombok,要實現簡單賦值對象屬性也很簡單,jdk 8的通用Builder可以瞭解一下!
這個方式,不需要改造原來類,不需要 lombok 插件支持;用到的話可以查下具體怎麼使用!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章