lombok的@toBuilder和@Data的区别

本文介绍了Lombok的@toBuilder和@Data注解,详细讲解了它们的区别和应用场景。@toBuilder主要用于生成构建器,方便创建类实例,支持链式调用,保证对象一致性;而@Data则提供了getter、setter、equals、hashCode等方法,简化POJO类的编写。文章讨论了两者是否可以同时使用,以及如何选择适用的注解。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

之前看到有人提到了Lombok中的一个注解叫做@toBuilder,感觉有点意思,所以留下这个学习记录。


一、toBuilder简介

lombok的toBuilder功能是什么?

Lombok的toBuilder功能是一种注解,可以在类上使用,以生成一个可以用来创建类实例的构建器。这样可以简化代码,避免编写冗长的构造器或者setter方法。

@toBuilder使用举例

例如,如果你有一个名为Widget的类,你可以在类声明上添加@Builder注解,然后使用Widget.builder()方法来创建一个Widget对象。

Widget widget = Widget.builder()
    .name("My Widget")
    .id(123)
    .build();

这样就不需要编写一个带有所有参数的构造器或者一个空的构造器和多个setter方法。Lombok会为你生成一个包含所有属性的构建器,你可以链式地调用它的方法,然后使用build()方法来得到一个Widget对象。


二、@toBuilder和@Data有什么区别

@toBuilder和@Data是两个不同的Lombok注解,它们有不同的功能和用途。

@toBuilder是用来生成一个构建器的注解,它可以让你方便地创建类的实例。

@Data是一个方便的快捷注解,它包含了@ToString, @EqualsAndHashCode, @Getter / @Setter 和 @RequiredArgsConstructor的功能,它可以为你生成所有简单POJOs或者beans需要的代码,例如所有字段的getter和setter方法,以及合适的toString, equals和hashCode方法。

假设你有一个名为Person的类,它有三个属性:name, agegender。如果你只使用@Data注解,你的代码可能是这样的:

@Data 
public class Person {
    
	private String name; 
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值