好嘞阿杰 👍,Lombok 是 Java 面试和实际开发里都会遇到的工具,我给你整理一份完整的 Lombok 介绍、使用方法和总结,让你能快速掌握。
一、Lombok 介绍
- Lombok 是什么
- 一个 Java 开发工具库,通过 注解 简化 Java 代码(尤其是 JavaBean 里的 getter/setter/toString/equals 等)。
- 作用:减少样板代码(Boilerplate Code),让代码更简洁。
- 原理
- 编译时(Annotation Processing Tool,APT),Lombok 会在字节码层面插入对应的方法。
- 在源码里看不到
getXxx()
/setXxx()
,但编译后 class 文件里存在。
二、Lombok 常用注解及使用方法
1. 基础注解
注解 | 作用 | 示例 |
---|---|---|
@Getter | 生成所有字段的 getter 方法 | @Getter private String name; |
@Setter | 生成所有字段的 setter 方法 | @Setter private int age; |
@ToString | 生成 toString() 方法 | @ToString class User {...} |
@EqualsAndHashCode | 生成 equals() 和 hashCode() | 常和 @Data 一起用 |
2. 组合注解
注解 | 作用 |
---|---|
@Data | 相当于 @Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor |
@Value | 不可变类(final 类 + final 属性 + 只有 getter) |
@Builder | 生成建造者模式(链式调用构建对象) |
示例
import lombok.Data;
import lombok.Builder;
@Data
@Builder
public class User {
private String name;
private int age;
}
使用:
User user = User.builder()
.name("阿杰")
.age(25)
.build();
System.out.println(user);
// 输出:User(name=阿杰, age=25)
3. 构造器相关注解
注解 | 作用 |
---|---|
@NoArgsConstructor | 无参构造器 |
@AllArgsConstructor | 全参构造器 |
@RequiredArgsConstructor | 只包含 final 字段或 @NonNull 字段的构造器 |
4. 其他常用注解
注解 | 作用 |
---|---|
@Slf4j | 自动生成 log 日志对象 |
@SneakyThrows | 省略 throws 声明,自动包装异常 |
@Cleanup | 自动关闭资源(类似 try-with-resources) |
@NonNull | 给参数做非空校验,空值时报 NPE |
示例
import lombok.Cleanup;
import lombok.SneakyThrows;
import java.io.*;
public class FileDemo {
@SneakyThrows
public void readFile(String path) {
@Cleanup FileReader reader = new FileReader(path);
@Cleanup BufferedReader br = new BufferedReader(reader);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
}
三、Lombok 使用方法
1. 引入依赖(Maven 示例)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.32</version> <!-- 版本号根据需要 -->
<scope>provided</scope>
</dependency>
scope=provided
:说明只在编译时需要,运行时不需要。
2. IDEA 配置
- 安装 Lombok 插件(File → Settings → Plugins → 搜索 Lombok)
- 启用 Annotation Processing(File → Settings → Build → Compiler → Annotation Processors → 勾选 Enable annotation processing)
四、总结
✅ 优点
- 大幅减少样板代码(getter/setter/构造器/log 等)。
- 提高开发效率和代码可读性。
- 常见设计模式(Builder、不可变对象)可快速生成。
⚠️ 缺点/注意点
- 隐藏代码 → 源码里看不到,调试时要习惯反编译 class 文件。
- IDE 依赖 → 需要插件支持,否则编译/提示可能报错。
- 可维护性 → 初学者可能看不懂,团队需要统一规范。
👉 总结一句话:
Lombok 适合快速开发和减少冗余代码,但要注意团队规范和调试成本。
发表回复