Lombok 是一个用于简化 Java 开发的工具库,主要通过注解在编译时自动生成代码,减少开发中的样板代码。其核心作用如下:
@Getter
/@Setter
注解自动生成字段的访问方法,无需手动编写冗长的 getXxx()
和 setXxx()
方法。@NoArgsConstructor
:生成无参构造器。@AllArgsConstructor
:生成全字段构造器。@RequiredArgsConstructor
:生成针对 final
或 @NonNull
字段的构造器。@ToString
、@EqualsAndHashCode
自动生成对应方法,支持排除字段或调用父类实现。@Data
:@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor
,适用于 POJO 类的一键简化。@NonNull
注解在方法参数或字段赋值时自动插入空值检查,若为 null
则抛出 NullPointerException
。@Value
注解将类声明为不可变(所有字段为 final
),并生成全参构造器和 getter 方法。@Builder
自动生成建造者模式代码,简化多参数对象的创建过程。@Slf4j
、@Log4j
等注解,自动注入日志对象(如 log.info()
),无需手动声明日志变量。@Cleanup
自动调用资源的 close()
方法(如 I/O 流)。@Accessors(chain=true)
使 setter 方法返回当前对象,支持链式调用(如 obj.setA().setB()
)。注解 | 作用 | 常用场景 |
---|---|---|
@Getter /@Setter |
生成 getter/setter 方法 | POJO 类字段访问 |
@ToString |
生成包含字段的 toString() | 调试输出 |
@EqualsAndHashCode |
生成 equals() 和 hashCode() | 对象比较与哈希存储 |
@AllArgsConstructor |
生成全字段构造器 | 快速初始化对象 |
@NoArgsConstructor |
生成无参构造器 | 反射或框架要求无参构造 |
@Data |
组合注解(含上述5个功能) | 标准 POJO 类简化 |
@Builder |
生成建造者模式代码 | 复杂对象创建 |
@Slf4j |
注入 SLF4J 日志对象 | 日志记录 |
Lombok 通过编译时代码生成,显著减少重复性编码(如 getter/setter),提升开发效率与代码可读性,尤其适用于 POJO、DTO 等数据模型类。使用时需结合 IDE 插件和构建工具(Maven/Gradle),并注意团队协作时的技术一致性。