文章目录
- 0. 集成
- 1. @Data
- 2. @Getter 和 @Setter
- 3. @NoArgsConstructor,@AllArgsConstructor和@RequiredArgsConstructor
- 4. @ToString
- 5. @EqualsAndHashCode
- 6. @NonNull
- 7. @Builder
- 总结
Lombok 是一款 Java 开发的工具,它通过注解的方式简化了 Java 代码的编写,减少了一大堆样板代码,提高了代码的可读性和可维护性。在本博客中,我们将介绍 Lombok 中的一些常用注解及其用法。
0. 集成
1)Maven 依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
当然也可以使用其他方式,如 Gradle 或者 jar 包等等其他方式
2)安装 idea 插件
常用的注解:
1. @Data
它是 Lombok 提供的一个组合注解,它包含了 @Getter
、@Setter
、@ToString
、@EqualsAndHashCode
和 @RequiredArgsConstructor
的功能。使用 @Data
注解可以在类上一次性生成这几个常用的方法,减少了手动书写这些方法的工作量。
官方是这样简述的
使用方法:
@Data
public class User {
private Integer id;
private String name;
private Integer age;
}
2. @Getter 和 @Setter
它用于自动生成类的 getter 和 setter 方法。
官方是这样简述的
使用方法:
@Getter
@Setter
public class User {
private Integer id;
private String name;
private Integer age;
}
或者写在字段上
public class User {
@Getter
@Setter
private Integer id;
@Getter
@Setter
private String name;
@Getter
@Setter
private Integer age;
}
3. @NoArgsConstructor,@AllArgsConstructor和@RequiredArgsConstructor
@NoArgsConstructor
: 自动生成无参构造方法。@AllArgsConstructor
: 自动生成包含所有字段的构造方法。@RequiredArgsConstructor
: 自动生成包含final
或被@NonNull
注解修饰的字段的构造方法。
官方是这样简述的
使用方法:
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String name;
private Integer age;
}
4. @ToString
@ToString
注解自动生成 toString
方法。
官方是这样简述的
使用方法:
@ToString
public class User {
private Integer id;
private String name;
private Integer age;
}
也可以使用 @ToString(exclude = "id")
指定不在 toString
方法中包含 id
字段。
5. @EqualsAndHashCode
@EqualsAndHashCode
注解生成 equals
和 hashCode
方法。
官方是这样简述的
使用方法:
@EqualsAndHashCode
public class User {
private Integer id;
private String name;
private Integer age;
}
也可以使用 @EqualsAndHashCode(of = "id")
指定仅包含 id
字段用于生成 equals
和 hashCode
方法。
6. @NonNull
@NonNull
注解用于标记字段为非空,生成相应的 null 检查和抛出 NullPointerException
的代码。
使用方法:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
@NonNull
private Integer id;
private String name;
private Integer age;
}
代码中的 @NonNull
注解表示 id
字段不能为空,生成了相应的 null 检查。
7. @Builder
@Builder
注解用于生成 Builder 模式的代码,方便创建对象时进行链式调用。
官方是这样简述的
使用方法:
@Builder
public class User {
private Integer id;
private String name;
private Integer age;
}
上述代码中,使用 @Builder
注解后,可以通过 User.builder().id(1).name("cheney").age(18).build()
创建 User
对象。
总结
以上是一些常用的 Lombok 注解及其用法。Lombok 提供了许多其他有用的注解,可以根据实际需求选择使用。使用 Lombok 可以有效地减少冗长的代码,提高代码的清晰度和可读性。