lombok的@Builder的使用,@Builder的使用效果

本文介绍了Java中的@Builder注解,展示了如何通过它简化对象实例化过程,以及其生成的People类和Builder类的结构。通过示例说明了如何在GET请求中使用@Builder创建People对象并打印其ToString结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章的目的:不介绍@Builder的原理,只说明它的使用效果。

@Builder
@ToString
public class People {
    private Long id;
    private String name;
    private String address;
}

运行后(不要误会这段代码不能直接运行,要自己构建运行环境),查看对应的class文件发现People类变成了:

public class People {
    private Long id;
    private String name;
    private String address;

    People(final Long id, final String name, final String address) {
        this.id = id;
        this.name = name;
        this.address = address;
    }

    public static PeopleBuilder builder() {
        return new PeopleBuilder();
}

public String toString() {
        return "People(id=" + this.id + ", name=" + this.name + ", address=" + this.address + ")";
    }

    public static class PeopleBuilder {
        private Long id;
        private String name;
        private String address;

        PeopleBuilder() {
        }

        public PeopleBuilder id(final Long id) {
            this.id = id;
            return this;
        }

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

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

        public People build() {
            return new People(this.id, this.name, this.address);
        }

        public String toString() {
            return "People.PeopleBuilder(id=" + this.id + ", name=" + this.name + ", address=" + this.address + ")";
        }
    }
}

所以可以这样使用:

@GetMapping("/hello")
public String hello() {
        //等价与 new People(10L,"lihuo","888")
        People people = People.builder().id(10L).name("lihuo").address("888").build();

        System.out.println(people.toString());

        return "Hello,World";
    }

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值