pojo类不能有默认值怎么办_Lombok Pojo默认初始值问题

本文探讨了在使用Lombok @Builder注解时遇到的默认值问题,特别是当版本低于1.18.20时,通过反射或其他方式实例化对象可能导致属性默认值丢失。解决方案是使用@Builder.Default注解来确保默认值生效。同时提醒开发者,当遇到此类问题时,考虑升级Lombok到1.18.20以上版本。
摘要由CSDN通过智能技术生成

Lombok以注解形式来简化java代码,提高开发效率。比如我们常用的@Builder、@Data、@AllArgsConstructor、@NoArgsConstructor、@ToString等。

然最近在迭代中发现Lombok(version:1.16.20或者低于这个版本)的builder模式与new实例化或者反射机制下实例化对象默认值不兼容。这里的默认值不是基本数据类型

Lombok是通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。可以通过反编译查看生成的字节码。例子:

@Builder

@Data

@ToString

@AllArgsConstructor

@NoArgsConstructor

public class A {

int num;

Integer count;

Integer noticedCount = 0;

}

使用方式如下

public class Test {

public static void main(String[] args) {

A a = A.builder().count(1).noticedCount(2).build();

}

}

这样写看着比以前的new A(),再set值方便多了,当然也可以在构造函数中直接传入需要的值。但是如果类的属性多了,就会发现Lombok使用以及开发效率上要高很多。

然而最近,在项目中使用的时候发现一个bug问题,项目中使用的Lombok的版本号1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值