当前位置:首页 > Java

builder如何构建java

2026-03-22 09:14:21Java

使用Builder模式构建Java对象

Builder模式是一种创建型设计模式,用于构建复杂对象。它通过分离对象的构建过程和表示,使得相同的构建过程可以创建不同的表示。

定义Builder类

创建一个静态内部类作为Builder,包含与外部类相同的字段。为每个字段提供设置方法,并返回Builder实例以实现链式调用。

public class User {
    private final String firstName;
    private final String lastName;
    private final int age;
    private final String phone;
    private final String address;

    private User(UserBuilder builder) {
        this.firstName = builder.firstName;
        this.lastName = builder.lastName;
        this.age = builder.age;
        this.phone = builder.phone;
        this.address = builder.address;
    }

    public static class UserBuilder {
        private String firstName;
        private String lastName;
        private int age;
        private String phone;
        private String address;

        public UserBuilder firstName(String firstName) {
            this.firstName = firstName;
            return this;
        }

        public UserBuilder lastName(String lastName) {
            this.lastName = lastName;
            return this;
        }

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

        public UserBuilder phone(String phone) {
            this.phone = phone;
            return this;
        }

        public UserBuilder address(String address) {
            this.address = address;
            return this;
        }

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

使用Builder创建对象

通过链式调用Builder的方法设置属性,最后调用build()方法创建对象实例。

User user = new User.UserBuilder()
    .firstName("John")
    .lastName("Doe")
    .age(30)
    .phone("1234567")
    .address("123 Main St")
    .build();

验证构建参数

可以在build()方法中添加参数验证逻辑,确保构建的对象满足特定条件。

public User build() {
    if (firstName == null || lastName == null) {
        throw new IllegalStateException("First and last name are required");
    }
    if (age < 0) {
        throw new IllegalStateException("Age cannot be negative");
    }
    return new User(this);
}

使用Lombok简化Builder

如果使用Lombok库,可以通过注解自动生成Builder模式代码。

import lombok.Builder;
import lombok.ToString;

@Builder
@ToString
public class User {
    private final String firstName;
    private final String lastName;
    private final int age;
    private final String phone;
    private final String address;
}

使用Lombok生成的Builder:

User user = User.builder()
    .firstName("John")
    .lastName("Doe")
    .age(30)
    .phone("1234567")
    .address("123 Main St")
    .build();

不可变对象与Builder

Builder模式特别适合创建不可变对象,因为所有字段都可以在构造函数中一次性设置,并且声明为final。

builder如何构建java

public class ImmutableUser {
    private final String name;
    private final String email;

    private ImmutableUser(Builder builder) {
        this.name = builder.name;
        this.email = builder.email;
    }

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

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

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

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

标签: builderjava
分享给朋友:

相关文章

java如何运行

java如何运行

运行Java程序的基本方法 Java程序的运行需要经过编写、编译和执行三个主要阶段。以下是具体步骤: 编写Java源代码 创建一个以.java为后缀的文件,例如HelloWorld.java。文件内…

如何安装java环境

如何安装java环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行安…

如何编写java

如何编写java

编写Java程序的基本步骤 安装Java开发工具包(JDK),确保系统环境变量配置正确。可以从Oracle官网下载最新版本的JDK并进行安装。 选择一个合适的集成开发环境(IDE),如Eclipse…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…

如何导入java项目

如何导入java项目

导入Java项目的方法 使用IDE导入(如IntelliJ IDEA或Eclipse) 打开IDE后选择导入现有项目,导航至项目根目录(包含pom.xml或build.gradle的文件位置)。IDE…