你有没有试过写一个 Java 类,光是 getter、setter、toString 这些方法就占了大半篇幅?比如定义一个用户类,除了姓名、年龄这些字段,还得手动加一堆方法。代码越写越长,真正有用的逻辑反而被淹没了。
重复代码让人头疼
想象一下你在开发一个家庭 WiFi 管理系统,要建很多设备类:路由器、中继器、智能插座。每个类都得写 private 字段,再一个个生成 getter 和 setter。改个字段名,还得顺手改三四处方法。一不小心还漏了个 notifyPropertyChange,调试半天才发现数据没更新。
Lombok 来救场
这时候 Lombok 就派上用场了。它不是框架,也不是运行时库,而是一个编译期工具。你只用在类上加个注解,它就能自动帮你生成那些重复代码。
比如这个路由器类:
@Data
public class Router {
private String ssid;
private String password;
private int signalStrength;
}
就这三行字段,加上 @Data 注解,Lombok 会自动生成 getter、setter、toString、equals 和 hashCode。你不用写,但它在编译后就是完整的类。
常用注解很贴心
@Getter 和 @Setter 可以单独用,如果你只想对某些字段开放修改权限。比如信号强度只能读,不能随便设:
public class Router {
@Getter
private int signalStrength;
@Setter
private String adminPassword;
}
还有 @ToString(exclude = "password"),能自动排除敏感字段,打印日志时不怕泄露密码。
构造函数也能省
想让类不可变?用 @Value 注解,所有字段自动变成 final,生成全参构造。或者用 @Builder,开启链式创建:
Router router = Router.builder()
.ssid("HomeWiFi")
.password("12345678")
.signalStrength(85)
.build();
看起来像配置文件一样清爽。
怎么用起来
Maven 项目里加一行依赖就行:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
然后确保你的 IDE 安装了 Lombok 插件,不然会报错找不到方法。IntelliJ 和 Eclipse 都支持,搜一下插件名装上就行。
用了 Lombok 之后,代码短了一半,重点逻辑一眼就能看到。就像家里装了 WiFi 中继器,信号满格,走路再也不用贴着墙了。