| 分类 | 注解 | 作用 | 常用参数/示例 |
| 核心类注解 | @Getter/@Setter | 自动生成字段的 getter/setter 方法 | @Setter(AccessLevel.PROTECTED) 指定访问权限 |
| @ToString | 生成 toString() | @ToString(exclude = "id") 排除字段 | |
| @EqualsAndHashCode | 生成 equals() 和 hashCode() 方法 | @EqualsAndHashCode(callSuper = true) 包含父类字段 | |
| @Data | 复合注解:包含 @Getter、@Setter、@ToString、@EqualsAndHashCode | 适用于 POJO 类 | |
| 构造器注解 | @NoArgsConstructor | 生成无参构造器 | 无参 |
| @AllArgsConstructor | 生成全字段构造器 | 全参 | |
| @RequiredArgsConstructor | 为 final 或 @NonNull 字段生成构造器 | 仅含必填字段 | |
| 设计模式 | @Builder | 实现建造者模式,支持链式调用 | User.builder().name("Tom").build() |
| @Value | 生成不可变类(类似 @Data,字段默认为 final) | 适用于值对象 | |
| 工具类注解 | @NonNull | 自动校验参数或字段非空 | public void setName(@NonNull String name) |
| @SneakyThrows | 将受检异常转换为非受检异常 | 无需显式 throws | |
| @Cleanup | 自动管理资源(如关闭流) | @Cleanup InputStream input = new FileInputStream("file.txt") | |
| @Synchronized | 替代 synchronized 关键字 | 可指定锁对象 | |
| 日志注解 | @Slf4j | 生成 SLF4J 日志对象 log | log.info("Running...") |
| 其他 | @Accessors(chain = true) | 开启链式调用(Setter 返回 this) | user.setName("A").setAge(20) |