Java进阶——Lombok的使用看这一篇就够了。

📅 2026/7/30 18:12:30
Java进阶——Lombok的使用看这一篇就够了。
Lombok可以通过注解的方式在编译时自动生成 getter、setter、构造函数、toString 等样板代码从而减少代码的冗余提高开发效率。1. 工作原理Lombok 利用 Java 的注解处理器Annotation Processor在编译阶段修改抽象语法树AST生成相应的代码而不是在运行时通过反射等方式实现。2. Lombok 依赖添加重要知识点Maven 依赖在pom.xml文件中添加 Lombok 依赖。Gradle 依赖在build.gradle文件中添加 Lombok 依赖。代码示例MavendependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.26/versionscopeprovided/scope/dependency3. 常用 Lombok 注解及使用场景3.1Getter和Setter重要知识点作用自动生成类中所有属性的 getter 和 setter 方法。可以用在类上为所有属性生成也可以用在单个属性上只为该属性生成。使用场景在实体类中当需要频繁访问和修改属性值时使用这两个注解可以避免手动编写大量的 getter 和 setter 方法。代码示例importlombok.Getter;importlombok.Setter;// 商品实体类GetterSetterpublicclassProduct{privateStringproductId;privateStringproductName;privatedoubleprice;privateintstock;}3.2ToString重要知识点作用自动生成类的toString方法方便打印对象的信息。可以通过exclude属性排除某些不需要显示的属性通过includeFieldNames属性控制是否显示属性名。使用场景在调试和日志记录时需要查看对象的详细信息使用该注解可以避免手动编写复杂的toString方法。代码示例importlombok.ToString;// 订单实体类ToString(excludeorderDetails)publicclassOrder{privateStringorderId;privateStringcustomerId;privatejava.util.ListOrderDetailorderDetails;}3.3EqualsAndHashCode重要知识点作用自动生成类的equals和hashCode方法。可以通过exclude属性排除某些不需要参与比较的属性。使用场景在需要对对象进行比较和存储到集合如HashSet、HashMap中时使用该注解可以确保对象的比较和哈希计算的正确性。代码示例importlombok.EqualsAndHashCode;// 用户实体类EqualsAndHashCode(excludepassword)publicclassUser{privateStringuserId;privateStringusername;privateStringpassword;}3.4NoArgsConstructor、RequiredArgsConstructor和AllArgsConstructor重要知识点NoArgsConstructor生成无参构造函数。RequiredArgsConstructor为类中所有被final修饰的属性和被NonNull注解的属性生成构造函数。AllArgsConstructor生成包含所有属性的构造函数。使用场景在创建对象时根据不同的需求选择合适的构造函数。例如使用NoArgsConstructor可以方便地创建空对象使用AllArgsConstructor可以一次性初始化所有属性。代码示例importlombok.AllArgsConstructor;importlombok.NoArgsConstructor;importlombok.RequiredArgsConstructor;// 商品分类实体类NoArgsConstructorRequiredArgsConstructorAllArgsConstructorpublicclassProductCategory{privateStringcategoryId;privatefinalStringcategoryName;privateStringdescription;}3.5Data重要知识点作用是Getter、Setter、ToString、EqualsAndHashCode和RequiredArgsConstructor的组合注解一次性为类生成常用的方法。使用场景在大多数实体类中使用该注解可以大大减少代码量。代码示例importlombok.Data;// 购物车项实体类DatapublicclassCartItem{privateStringcartItemId;privateStringproductId;privateintquantity;}3.6Builder重要知识点作用为类生成建造者模式的代码通过链式调用的方式方便地创建对象。使用场景当类的属性较多创建对象时需要设置多个属性值使用建造者模式可以提高代码的可读性和可维护性。代码示例importlombok.Builder;// 优惠券实体类BuilderpublicclassCoupon{privateStringcouponId;privateStringcouponName;privatedoublediscount;privatejava.util.DateexpirationDate;}// 使用建造者模式创建对象CouponcouponCoupon.builder().couponId(123).couponName(满减优惠券).discount(10.0).expirationDate(newjava.util.Date()).build();4. Lombok 的优缺点4.1 优点提高开发效率减少了大量样板代码的编写使代码更加简洁。代码可读性高去除了冗长的 getter、setter 等方法使类的核心逻辑更加清晰。易于维护当类的属性发生变化时不需要手动修改大量的样板代码。4.2 缺点学习成本对于不熟悉 Lombok 的开发者来说需要花费一定的时间学习和理解其注解的使用。调试困难由于 Lombok 生成的代码在编译阶段才出现调试时可能会增加一定的难度。兼容性问题在某些开发工具或环境中可能会出现对 Lombok 支持不好的情况。5. Lombok 与 IDE 集成重要知识点IntelliJ IDEA需要安装 Lombok 插件并在 IDE 设置中启用注解处理器。Eclipse需要下载 Lombok 的 JAR 文件运行该文件进行安装并在 Eclipse 中配置注解处理器。