【职场精英篇】为什么有些公司不让用 Lombok ?

Lombok是一个节省Java代码的库,但它的使用可能带来问题。文章讨论了Lombok在JDK版本兼容性、代码可读性、耦合度和维护性上的挑战,指出其可能导致的代码亚健康状态。总结认为,虽然Lombok简化编码,但可能增加技术债务,降低代码可读性和调试难度,需谨慎使用。

不得不承认,Lombok 是一个很不错的 Java 库,它可以让你在少写代码的同时耍耍酷,简单的几个注解,就可以干掉一大片模板代码。但是,所有的源代码很多时候是用来阅读的,只有很少的时间是用来执行的 (你可以细品这句话)。

接下来,我将用几个大家耳熟能详的场景,重演我们是如何掉入 Lombok 的戏法陷阱。


爱的开始,恨的起源

面对 Lombok 提供的诸多 “神走位”,你并不会介意在 IDE 上新增一个插件。对于 IntelliJ IDEA 玩家而言,只需搜索 “Lombok Plugin” 便可找到这款神器并安装上它。爱上 Lombok 从安装 Lombok 插件开始,恨也从此萌芽。
没使用 Lombok 之前,我们的源代码看起来是这一的:

public class MyObject{
   
   
    private Long id;
    private String name;
    private int age;
    private int gender;

    public Long getId(){
   
   
        return id;
    }
    public void setId(Long id){
   
   
        this.id = id;
    }
    public String getName(){
   
   
        return name;
    }
    public void setName(String name){
   
   
        this.name = name;
    }
    public int getAge(){
   
   
        return age;
    }
    public void setAge(int age){
   
   
        this.age = age;
    }
    public int getGender(){
   
   
        return gen
使用 Lombok 时生成的 `get` 和 `set` 方法报红,通常与以下几个原因有关: ### 1. **Lombok 插件未正确安装或启用** IntelliJ IDEA 默认并不识别 Lombok 生成的代码,因为这些方法是在编译期动态生成的。如果未在 IDEA 中安装并启用 Lombok 插件,IDE 将无法识别这些方法,从而导致 `get`/`set` 方法被标记为错误。 在 IDEA 中安装 Lombok 插件的步骤为:点击 `File > Settings > Plugins`,搜索 Lombok 并安装。安装完成后,重启 IDEA 以确保插件生效[^1]。 ### 2. **项目未正确引入 Lombok 依赖** 即使安装了插件,如果项目中未正确引入 Lombok 的依赖,编译时也无法生成 `get`/`set` 方法。Maven 项目应在 `pom.xml` 中添加如下依赖: ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <!-- 使用最新版本 --> <scope>provided</scope> </dependency> ``` 确保依赖版本与项目兼容,并刷新 Maven 以更新依赖[^2]。 ### 3. **字段命名不规范或访问权限问题** Lombok 生成的 `get`/`set` 方法遵循 Java Bean 规范,字段名需与方法名匹配。例如字段为 `private String name;`,则生成的方法应为 `getName()` 和 `setName(String name)`。如果字段名不符合命名规范(如包含特殊字符或使用非驼峰命名),可能导致生成失败或方法名不正确,从而引发报红。 此外,如果字段被声明为 `private`,但在其他类中尝试直接访问字段而非使用 `get`/`set` 方法,也可能导致 IDE 提示错误。 ### 4. **IDE 缓存问题** IDEA 的缓存机制可能导致即使代码无误,仍显示错误提示。此时可通过清除缓存并重启 IDEA 来解决:点击 `File > Invalidate Caches / Restart`,然后选择 `Invalidate and Restart`。 ### 5. **项目 SDK 配置问题** 如果项目未正确配置 JDK,IDEA 可能无法识别 Lombok 注解处理器,导致 `get`/`set` 方法无法生成。检查 `File > Project Structure > SDKs`,确保已正确设置 JDK,并确认模块的 `Language level` 与 JDK 版本兼容。 ### 示例代码 以下是一个使用 Lombok 注解的实体类示例: ```java import lombok.Getter; import lombok.Setter; @Getter @Setter public class User { private String id; private String name; private Integer age; } ``` 上述代码中,`@Getter` 和 `@Setter` 注解会自动生成所有字段的 `get`/`set` 方法。如果配置正确,IDEA 的 Structure 面板中将显示这些方法,即使源码中没有显式编写。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千筹问战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值