Lombok 通过在源码中插入注解,在编译期自动生成 getter/setter、构造器、equals/hashCode、toString、日志字段、Builder 等样板代码,显著减少冗长代码、提升可读性与维护性,并避免手工编写带来的疏漏;同时与 IntelliJ IDEA 等 IDE 深度集成,提供代码提示与错误检查,使开发体验更流畅。
| 注解 | 主要作用 | 典型场景 |
|---|---|---|
| @Data | 组合注解,生成 getter/setter、toString、equals/hashCode、@RequiredArgsConstructor | 快速定义 DTO/VO/DO |
| @Getter / @Setter | 为字段生成访问器,可指定访问级别 | 需要定制访问控制的属性 |
| @ToString / @EqualsAndHashCode | 生成对象字符串表示与相等性逻辑 | 集合操作、缓存键、日志输出 |
| @NoArgsConstructor / @AllArgsConstructor / @RequiredArgsConstructor | 生成无参/全参/必要参数构造器 | 框架反射实例化、测试数据构造 |
| @Builder | 生成建造者模式,支持链式调用 | 参数较多的对象构建 |
| @Slf4j / @Log4j2 等 | 自动生成日志字段 private static final Logger log | 统一日志输出 |
| @NonNull | 为参数/字段生成空值检查 | 入参校验、避免 NullPointerException |
| @Cleanup | 自动资源关闭(try-finally 包装) | InputStream/OutputStream 等需要关闭的资源 |
| val / var | 局部变量类型推导(val 为 final,var 非 final) | 简化局部变量声明 |
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
import lombok.Data;
@Data
public class User {
private String name;
private int age;
}
以上配置后,编译期会自动生成 getter/setter、toString、equals/hashCode 等方法。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。