lombok还有哪些常用注解
时间: 2023-10-12 10:51:10 浏览: 112
除了前面提到的@Data、@NoArgsConstructor和@AllArgsConstructor之外,Lombok还有一些其他常用的注解,包括:
@Setter和@Getter:自动生成属性的setter和getter方法。
@ToString:自动生成toString方法,方便对象的打印输出。
@EqualsAndHashCode:自动生成equals和hashCode方法,用于对象的比较和哈希计算。
@Builder:生成Builder模式的构造器,提供一种流畅的对象创建方式。
@Slf4j:生成一个日志记录器,简化日志的使用。
@NonNull:标记参数不允许为空,生成空指针检查代码。
@SneakyThrows:在方法上自动添加异常捕获和抛出代码。
@Value:生成不可变的值对象,包含所有属性的getter方法。
@Cleanup:自动为资源(如流或连接)添加关闭代码。
这些注解可以根据具体需求在Java类中使用,提高代码的简洁性和可维护性。需要注意的是,在使用这些注解之前,需要在项目中引入Lombok库。
相关问题
LomBok常用注解
Lombok是一个流行的Java库,它通过提供各种注解(annotations),帮助开发者自动化一些常见的任务,如属性的getter/setter生成、构造函数简化、toString方法自动生成等,从而减少样板代码。Lombok的一些常用注解包括:
1. `@Getter` 和 `@Setter`: 分别用于生成访问器(getters)和修改器(setters)方法,简化POJO(Plain Old Java Object)的字段操作。
2. `@ToString`: 自动创建一个包含所有属性值的字符串表示,便于调试和日志输出。
3. `@NoArgsConstructor`: 创建无参构造函数,如果不需要显式指定参数,则可以省去。
4. `@AllArgsConstructor`: 生成包含所有参数的构造函数。
5. `@Data`: 组合了上述大部分注解,常用于简化简单的POJO。
6. `@NoArgsConstructor`, `@AllArgsConstructor`, 或 `@NoArgsConstructor`, `@AllArgsConstructor`, `@ToString`: 这些单独的注解分别用于只生成特定类型的构造器。
7. `@Slf4j` 或 `@AutoLog`: 使用SLF4J自动注入日志记录,方便日志管理。
8. `@NonNull` 和 `@Nullable`: 标记变量是否允许为null,提高代码清晰度。
9. `@Value`: 类似于`@Data`,但不包含默认构造函数和`equals()`和`hashCode()`方法。
lombok 常用注解
Lombok提供了一系列方便的注解,使得开发者能简洁地创建常见Java元素而无需手动编写大量的样板代码。以下是Lombok中一些常用的注解:
1. `@Getter` 和 `@Setter`: 自动生成getter和setter方法,简化属性访问。例如:
```java
@Data // 等同于 @NoArgsConstructor, @AllArgsConstructor, @ToString, @EqualsAndHashCode, @Getter, @Setter
class User {
private String name;
}
```
2. `@ToString`: 自动生成对象的字符串表示形式。
3. `@NoArgsConstructor` 和 `@AllArgsConstructor`: 分别用于生成无参构造函数和包含所有字段的全参数构造函数。
4. `@AllArgsConstructor` 或 `@NoArgsConstructor` 的变体,如 `@NoArgsConstructor`, `@RequiredArgsConstructor`, `@AllArgsConstructor` with/without varargs,允许更精细的控制构造函数参数。
5. `@Slf4j` 或 `@NonNull`: 注解用于标记日志级别和非空值,便于日志管理和null安全检查。
6. `@Builder`: 生成一个带有默认值和链式方法的构建器,方便对象的构造。
7. `@DataSuperclass` 和 `@Singular`: 提供继承和集合操作的便利性。
8. `@Value`: 类似于`@AllArgsConstructor`,但它会忽略所有`final`字段,不会生成equals, hashCode, toString方法,只保留基本类型字段。
9. `@NoArgsConstructor` 的否定形式 `@NoArgsConstructor(false)`: 可以禁用Lombok自动生成的无参构造器。
10. `@JsonInclude(JsonInclude.Include.NON_NULL)`: 对应于Jackson JSON序列化,将null值排除在外。
这些注解大大提高了Java开发的效率,但在实际应用中需谨慎使用,保持代码清晰易懂。
阅读全文