天天看點

lombok 下的@Builder注解用法

pom依賴 

<dependency>

            <groupId>org.projectlombok</groupId>

            <artifactId>lombok</artifactId>

            <version>0.10.2</version>

   </dependency>

java~lombok裡的Builder注解

lombok注解在java進行編譯時進行代碼的建構,對于java對象的建立工作它可以更優雅,不需要寫多餘的重複的代碼,這對于JAVA開發人員是很重要的,在出現lombok之後,對象的建立工作更提供Builder方法,它提供在設計資料實體時,對外保持private setter,而對屬性的指派采用Builder的方式,這種方式最優雅,也更符合封裝的原則,不對外公開屬性的寫操作!

@Builder聲明實體,表示可以進行Builder方式初始化,@Value注解,表示隻公開getter,對所有屬性的setter都封閉,即private修飾,是以它不能和@Builder現起用

一般地,我們可以這樣設計實體!

lombok 下的@Builder注解用法

@Builder(toBuilder = true)     @Getter     public class UserInfo {       private String name;       private String email;       @MinMoney(message = "金額不能小于0.")       @MaxMoney(value = 10, message = "金額不能大于10.")       private Money price;     }      
lombok 下的@Builder注解用法

@Builder注解指派新對象

UserInfo userInfo = UserInfo.builder()     .name("zzl")     .email("[email protected]")     .build();      

@Builder注解修改原對象的屬性值

修改實體,要求實體上添加@Builder(toBuilder=true)

userInfo = userInfo.toBuilder()     .name("OK")     .email("[email protected]")     .build();      

lombok 下的@Builder注解用法
@Builder(toBuilder = true)     @Getter     public class UserInfo {       private String name;       private String email;       @MinMoney(message = "金額不能小于0.")       @MaxMoney(value = 10, message = "金額不能大于10.")       private Money price;     }      
lombok 下的@Builder注解用法
UserInfo userInfo = UserInfo.builder()     .name("zzl")     .email("[email protected]")     .build();      
userInfo = userInfo.toBuilder()     .name("OK")     .email("[email protected]")     .build();