最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的@builder建造者模式詳細(xì)解析

 更新時(shí)間:2024年01月30日 10:52:22   作者:小小懶懶  
這篇文章主要介紹了Java中的@builder建造者模式詳細(xì)解析,使用 @Builder 注解可以簡化手動(dòng)編寫建造者模式的代碼,使代碼更加簡潔易讀,它可以自動(dòng)生成鏈?zhǔn)秸{(diào)用的方法來設(shè)置對象的屬性,并且可以在需要時(shí)進(jìn)行可選屬性的設(shè)置,需要的朋友可以參考下

@Builder

@Builder 是 Lombok 提供的一個(gè)注解,用于自動(dòng)生成建造者模式的相關(guān)代碼。

通過在類上添加 @Builder 注解,Lombok 會(huì)自動(dòng)生成一個(gè)內(nèi)部靜態(tài)類作為建造者,并在原始類中添加一個(gè)私有構(gòu)造函數(shù)。

使用 @Builder 注解可以簡化手動(dòng)編寫建造者模式的代碼,使代碼更加簡潔易讀。

它可以自動(dòng)生成鏈?zhǔn)秸{(diào)用的方法來設(shè)置對象的屬性,并且可以在需要時(shí)進(jìn)行可選屬性的設(shè)置。

@Builder 注解示例

下面是一個(gè)使用 @Builder 注解的示例:

import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Person {
    private String name;
    private int age;
    private String address;
    private String phoneNumber;
}

在上面的示例中,我們使用 @Builder 注解標(biāo)注了 Person 類。Lombok 會(huì)自動(dòng)生成一個(gè)內(nèi)部靜態(tài)類 PersonBuilder 作為建造者,并在 Person 類中添加一個(gè)私有構(gòu)造函數(shù)。

現(xiàn)在,我們可以使用自動(dòng)生成的建造者來創(chuàng)建 Person 對象,如下所示:

Person person = Person.builder()
    .name("John")
    .age(30)
    .address("123 Main St")
    .phoneNumber("555-1234")
    .build();

在上面的代碼中,我們使用鏈?zhǔn)秸{(diào)用的方式設(shè)置 Person 對象的屬性,并通過 build() 方法來構(gòu)建最終的對象。build() 方法會(huì)返回一個(gè) Person 對象。

@Builder 注解還具有其他一些可選的配置選項(xiàng),例如可以使用 @Builder.Default 注解設(shè)置屬性的默認(rèn)值,可以使用 @Singular 注解處理集合類型的屬性等。通過這些配置選項(xiàng),可以進(jìn)一步定制生成的建造者模式的代碼。

需要注意的是,使用 @Builder 注解需要事先在項(xiàng)目中引入 Lombok 相關(guān)的依賴,并確保 IDE 配置中已啟用 Lombok 插件,以使 Lombok 注解生效。

總而言之,@Builder 是 Lombok 提供的一個(gè)注解,用于自動(dòng)生成建造者模式的相關(guān)代碼。它可以簡化手動(dòng)編寫建造者模式的代碼,使代碼更加簡潔易讀。通過使用 @Builder 注解,可以方便地創(chuàng)建和設(shè)置對象的屬性,并生成最終的對象。

建造者模式使用示例

下面再舉例一些使用建造者模式的例子:

創(chuàng)建用戶對象(User):

import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class User {
    private String username;
    private String password;
    private String email;
    private boolean isActive;
}

通過 @Builder 注解,我們可以輕松創(chuàng)建用戶對象,并使用鏈?zhǔn)秸{(diào)用設(shè)置屬性。

構(gòu)建圖書對象(Book):

import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Book {
    private String title;
    private String author;
    private String publisher;
    private int year;
    private double price;
}

在這個(gè)示例中,我們使用 @Builder 注解創(chuàng)建了一個(gè)圖書對象,并可以方便地設(shè)置圖書的各個(gè)屬性。

創(chuàng)建訂單對象(Order):

import lombok.Builder;
import lombok.Getter;
import java.util.List;
@Getter
@Builder
public class Order {
    private String orderId;
    private List<String> items;
    private String customerName;
    private String shippingAddress;
}

通過 @Builder 注解,我們可以快速構(gòu)建訂單對象,并設(shè)置訂單的各個(gè)屬性。

構(gòu)建配置對象(Configuration):

import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Configuration {
    private String appName;
    private String databaseUrl;
    private String username;
    private String password;
    private int port;
}

在這個(gè)示例中,我們使用 @Builder 注解創(chuàng)建了一個(gè)配置對象,并可以使用鏈?zhǔn)秸{(diào)用設(shè)置配置的各個(gè)屬性。

通過使用 @Builder 注解,可以簡化創(chuàng)建復(fù)雜對象的過程,并提供了一種清晰、簡潔的方式來設(shè)置對象的屬性。它遵循建造者模式的原則,將對象的構(gòu)建過程與其表示分離,并提供了靈活性和可讀性。同時(shí),使用 Lombok 的 @Builder 注解還可以減少手動(dòng)編寫建造者模式的代碼量。

到此這篇關(guān)于Java中的@builder建造者模式詳細(xì)解析的文章就介紹到這了,更多相關(guān)@builder建造者模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot中json對象中對Long類型和String類型相互轉(zhuǎn)換

    springboot中json對象中對Long類型和String類型相互轉(zhuǎn)換

    與前端聯(lián)調(diào)接口時(shí),后端一些字段設(shè)計(jì)為Long類型,這樣就有可能導(dǎo)致前端缺失精度,這時(shí)候我們就需要將Long類型返回給前端時(shí)做數(shù)據(jù)類型轉(zhuǎn)換,本文主要介紹了springboot中json對象中對Long類型和String類型相互轉(zhuǎn)換,感興趣的可以了解一下
    2023-11-11
  • Java中spring boot 字符串判斷是否為空方法小結(jié)

    Java中spring boot 字符串判斷是否為空方法小結(jié)

    這篇文章主要介紹了Java中spring boot字符串判斷是否為空,通過安裝依賴,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • Java中的BigDecimal精度運(yùn)算詳解

    Java中的BigDecimal精度運(yùn)算詳解

    這篇文章主要介紹了Java中的BigDecimal精度運(yùn)算詳解,Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進(jìn)行精確的運(yùn)算,雙精度浮點(diǎn)型變量double可以處理16位有效數(shù),但在實(shí)際應(yīng)用中,可能需要對更大或者更小的數(shù)進(jìn)行運(yùn)算和處理,需要的朋友可以參考下
    2023-10-10
  • Java控制臺(tái)實(shí)現(xiàn)猜拳游戲小游戲

    Java控制臺(tái)實(shí)現(xiàn)猜拳游戲小游戲

    這篇文章主要為大家詳細(xì)介紹了Java控制臺(tái)實(shí)現(xiàn)猜拳游戲小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • SpringBoot之Profile的兩種使用方式詳解

    SpringBoot之Profile的兩種使用方式詳解

    當(dāng)在不同的環(huán)境下,想通過修改配置文件來連接不同的數(shù)據(jù)庫,比如在開發(fā)過程中啟動(dòng)項(xiàng)目時(shí),想連接開發(fā)環(huán)境對應(yīng)的數(shù)據(jù)庫,可以在配置文件中指定environment=dev,其他環(huán)境類似,此時(shí)就需要用到Spring為我們提供的Profile功能,本文給大家介紹了SpringBoot之Profile的兩種使用方式
    2024-10-10
  • Java創(chuàng)建對象的幾種方法

    Java創(chuàng)建對象的幾種方法

    這篇文章主要為大家詳細(xì)介紹了Java創(chuàng)建對象的幾種方法,使用new創(chuàng)建、使用object.clone()創(chuàng)建、使用反序列化創(chuàng)建等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Spring MVC 文件上傳下載的實(shí)例

    Spring MVC 文件上傳下載的實(shí)例

    本篇文章主要介紹了Spring MVC 文件上傳下載的實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • SpringBoot中Pageable分頁參數(shù)的自動(dòng)提取與全局復(fù)用

    SpringBoot中Pageable分頁參數(shù)的自動(dòng)提取與全局復(fù)用

    在現(xiàn)代 Web 應(yīng)用開發(fā)中,分頁是處理大量數(shù)據(jù)的標(biāo)配功能,本文將帶你實(shí)現(xiàn) 分頁參數(shù)的自動(dòng)提取、自定義配置與全局復(fù)用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-02-02
  • Reactor3 Map與FlatMap的區(qū)別示例詳解

    Reactor3 Map與FlatMap的區(qū)別示例詳解

    這篇文章主要為大家介紹了Reactor3 Map與FlatMap的區(qū)別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • JAVA并發(fā)圖解

    JAVA并發(fā)圖解

    這篇文章主要介紹了JAVA的并發(fā),文中圖解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2021-09-09

最新評論

和林格尔县| 鄂伦春自治旗| 徐州市| 于都县| 泗阳县| 青川县| 隆化县| 武功县| 凯里市| 凯里市| 吉首市| 县级市| 怀远县| 苍溪县| 平阳县| 绥棱县| 河北省| 武定县| 凯里市| 淮安市| 亚东县| 简阳市| 葵青区| 呼玛县| 潼关县| 江城| 丹江口市| 修武县| 苏尼特右旗| 乐亭县| 会昌县| 郑州市| 甘肃省| 阿拉善右旗| 龙游县| 宁陵县| 方城县| 黄石市| 邳州市| 安吉县| 桓仁|