Builder模式中的空指针异常
创始人
2024-12-25 12:00:34
0

为Builder模式中的属性设置默认值,避免空指针异常的发生。

Builder模式是一种创建型设计模式,在该模式中,我们使用Builder对象逐步构建复杂对象。然而,如果在Builder模式中某一属性没有被正常设置,可能会导致空指针异常的发生。例如:

public class User { private String name; private int age; private String email;

// private constructor
private User(Builder builder) {
    this.name = builder.name;
    this.age = builder.age;
    this.email = builder.email;
}

public static class Builder {
    private String name;
    private int age;
    private String email;

    public Builder name(String name) {
        this.name = name;
        return this;
    }

    public Builder age(int age) {
        this.age = age;
        return this;
    }

    public Builder email(String email) {
        this.email = email;
        return this;
    }

    public User build() {
        return new User(this);
    }
}

// public getters
public String getName() {
    return name;
}
public int getAge() {
    return age;
}
public String getEmail() {
    return email;
}

}

在上述代码中,如果在创建Builder对象的同时没有设置属性值,例如:

User.Builder builder = new User.Builder(); User user = builder.build();

那么构造User对象时就会抛出空指针异常。为避免这种情况,可以为属性设置默认值:

public static class Builder { private String name = ""; private int age = 0; private String email = "";

public Builder name(String name) {
    this.name = name;
    return this;
}

public Builder age(int age) {
    this.age = age;
    return this;
}

public Builder email(String email) {
    this.email = email;
    return this;
}

public User build() {
    return new User(this);
}

}

这样,当属性没有被设置时,会使用默认值,而不是抛出

相关内容

热门资讯

六分钟有透视!德普之星有辅助软... 六分钟有透视!德普之星有辅助软件吗(透视辅助软件)详细辅助脚本(一直脚本)1、上手简单,内置详细流程...
7分钟透视辅助软件!德普之星透... 7分钟透视辅助软件!德普之星透视辅助软件激活码(透视辅助软件)详细辅助模拟器(竟然模拟器)亲,关键说...
三分钟软件!德普之星怎么设置埋... 三分钟软件!德普之星怎么设置埋牌(透视辅助软件)详细辅助外挂(原来外挂)运辅助工具,进入游戏界面。进...
七分钟透视免费!德普之星的辅助... 七分钟透视免费!德普之星的辅助工具介绍(透视辅助)详细辅助作弊(果然作弊)1、操作简单,无需注册,只...
八分钟私人局辅助免费!德普之星... 八分钟私人局辅助免费!德普之星辅助工具如何打开(透视辅助软件)详细辅助器(原来器)1、全新机制【软件...
9分钟有透视!德普之星辅助软件... 9分钟有透视!德普之星辅助软件(透视辅助)详细辅助俱乐部(原来俱乐部)1、9分钟有透视!德普之星辅助...
1分钟有透视!德普之星辅助工具... 1分钟有透视!德普之星辅助工具如何打开(透视辅助软件)详细辅助免费(本来免费)1、ai机器人多个强度...
一分钟破解版!德普辅助软件(透... 一分钟破解版!德普辅助软件(透视辅助软件)详细辅助免费(真是免费)德普辅助软件辅助器中分为三种模型:...
一分钟开辅助!如何下载德普之星... 一分钟开辅助!如何下载德普之星辅助软件(透视辅助)详细辅助神器(一贯神器)德普之星辅助软件辅助器中分...
1分钟透视免费!德普软件,德普... 1分钟透视免费!德普软件,德普软件,详细教程(有挂软件)1、下载好辅助软件之后点击打开,先需要设置辅...