电脑课堂
柔彩主题三 · 更轻盈的阅读体验

用 Lombok 简化 Java 类,写代码不再重复搬砖

发布时间:2025-12-09 20:49:25 阅读:456 次

你有没有试过写一个 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 中继器,信号满格,走路再也不用贴着墙了。