前言
我們寫代碼如果要創建一個對象一般會使用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 插件支持;用到的話可以查下具體怎麼使用!