Lombok使用指南
引言
lombok作为减少我们代码量的利器,本文将列举常用的几个注解,来帮助减少代码量
注解及其功能
- @Getter 和 @Setter
import lombok.Getter; import lombok.Setter; @Getter @Setter public class Person { private String name; private int age; }
会自动为 name 和 age 字段生成对应的 getter 和 setter 方法,无需手动编写。
-
@ToString
import lombok.ToString; @ToString public class Book { private String title; private String author; }
这个好理解生成toString方法,不需要我们重写
-
@EqualsAndHashCode
自动生成 equals() 和 hashCode() 方法。
import lombok.EqualsAndHashCode; @EqualsAndHashCode public class Product { private String id; private String name; }
根据类的字段生成相应的 equals() 和 hashCode() 方法,用于对象的比较和哈希操作
-
@NoArgsConstructor、@RequiredArgsConstructor 和 @AllArgsConstructor
@NoArgsConstructor:生成一个无参构造函数。
@RequiredArgsConstructor:为类中所有被 final 修饰的字段和被 @NonNull 注解的字段生成一个带有这些字段作为参数的构造函数。
@AllArgsConstructor:生成一个包含所有字段作为参数的构造函数。
-
@Data
这是一个组合注解,相当于同时使用了 @Getter、@Setter、@ToString、@EqualsAndHashCode 和 @RequiredArgsConstructor
import lombok.Data; @Data public class Employee { private String employeeId; private String department; }
-
@Builder
为类生成一个建造者模式的 API,方便对象的创建和初始化。
import lombok.Builder; @Builder public class Car { private String brand; private String model; } // 使用建造者模式创建对象 Car car = Car.builder() .brand("Toyota") .model("Corolla") .build();
使用攻略
- 正常开发依赖注入和idea的插件都可以使用
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.26</version> <scope>provided</scope> </dependency>
-
个人心得:注解不只是可以设置在类上,静态内部类也可以使用,下面实战一下
import lombok.Getter; import lombok.Setter; // 外部类 public class OuterClass { // 静态内部类 @Getter @Setter public static class InnerStaticClass { private String innerField; } public static void main(String[] args) { InnerStaticClass inner = new InnerStaticClass(); inner.setInnerField("Hello, Inner Static Class!"); System.out.println(inner.getInnerField()); } }
可以大大优化我们代码的整洁度和可读性