lombok @Builder 是如何实现的
生活随笔
收集整理的這篇文章主要介紹了
lombok @Builder 是如何实现的
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
lombok 可能大家都用過,有一個 @Builder 注解可以很方便的在對象初始化的時候填充屬性值,不用大量的調用 setter 方法,代碼更易于閱讀與編寫。不知道大家有沒有想過 @Builder 注解內部是怎么實現的,前些天看 《Effective Java》 的時候剛好看到有一個例子,其實很簡單,這里以一個例子分享下代碼實現。
定義 Builder 接口,用于 build 對象:
public interface Builder<T> {T build(); }定義 bean:
public class UserFacts {private String name;private Integer age;public static UserFactsBuilder builder() {return new UserFactsBuilder();}public static class UserFactsBuilder implements Builder<UserFacts> {private String name;private Integer age = 0;public UserFactsBuilder name(String name) {this.name = name;return this;}public UserFactsBuilder age(Integer age) {this.age = age;return this;}@Overridepublic UserFacts build() {return new UserFacts(this);}}private UserFacts(UserFactsBuilder builder) {this.name = builder.name;this.age = builder.age;} }定義測試類:
public static void main(String[] args) {UserFacts userFacts = UserFacts.builder().name("zchen").age(18).build();System.out.println(userFacts.name);}這種 build 模式的代碼顯得很簡潔,你需要哪個參數直接 build 即可,比構造器要方便的多。這里只是簡單地分享一下,業務代碼寫久了,沒事了解些其他比較好的代碼格式或者業務架構模型還是挺有意思的的。
總結
以上是生活随笔為你收集整理的lombok @Builder 是如何实现的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 触漫登录入口(触漫网页版登录)
- 下一篇: 业务总结001:优惠券与礼包活动