Lombok - @Builder导致初始化字段无效解决办法

简介: Lombok - @Builder导致初始化字段无效解决办法

当用@Builder注解时,类里面的初始化字段就无效,比如下面类中的totalAmt和lineNum字段就会置为null。

@BuilderpublicclassFileExport {
privateStringcharset;
privateString[] fields;
privateStringamtField;
privateBigDecimaltotalAmt=BigDecimal.ZERO;
privateAtomicLonglineNum=newAtomicLong();
privateStringdelimiter;
privatePrintWriterwriter;
}

对于这种情况,可以在需要保留默认值的字段上加上@Builder.Default注解解决。

@BuilderpublicclassFileExport {
privateStringcharset;
privateString[] fields;
privateStringamtField;
@Builder.DefaultprivateBigDecimaltotalAmt=BigDecimal.ZERO;
@Builder.DefaultprivateAtomicLonglineNum=newAtomicLong();
privateStringdelimiter;
privatePrintWriterwriter;
}

Tip:idea的lombok插件记得升级到最新的,否则不支持@Builder.Default。

目录
相关文章
|
9月前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
577 115
|
Java 编译器
java“变量 x 可能未被初始化”解决
在Java中,如果编译器检测到变量可能在使用前未被初始化,会报“变量 x 可能未被初始化”的错误。解决方法包括:1. 在声明变量时直接初始化;2. 确保所有可能的执行路径都能对变量进行初始化。
1374 2
|
存储 Java C++
Java数组:静态初始化与动态初始化详解
本文介绍了Java中数组的定义、特点及初始化方式。
1269 12
lombok的使用
本文介绍了Lombok库的基本使用方法和常用注解,通过示例代码展示了如何使用Lombok简化Java对象的创建、属性访问、日志记录等编码工作,使代码更加简洁。
lombok的使用
Java 静态变量的初始化顺序
【10月更文挑战第15天】了解 Java 静态变量的初始化顺序对于正确编写和维护代码至关重要。通过深入理解初始化顺序的原理和细节,我们可以更好地避免潜在的问题,并提高代码的质量和可靠性。
|
Java 编译器
【一步一步了解Java系列】:子类继承以及代码块的初始化
【一步一步了解Java系列】:子类继承以及代码块的初始化
478 3
|
Java
java构造方法时对象初始化,实例化,参数赋值
java构造方法时对象初始化,实例化,参数赋值
472 1
|
安全 Java 编译器
java访问字段
java访问字段
247 6
|
安全 Java 编译器
java访问类字段
java访问类字段
|
IDE Java 编译器
lombok编译遇到“找不到符号的问题”
【9月更文挑战第18天】当使用 Lombok 遇到 “找不到符号” 的问题时,可能是由于 Lombok 未正确安装、编译器不支持、IDE 配置不当或项目构建工具配置错误。解决方法包括确认 Lombok 安装、编译器支持,配置 IDE 和检查构建工具配置。通过这些步骤通常可解决问题,若问题仍存在,建议检查项目配置和依赖,或查看日志获取更多信息。
6786 2