Lombok的常用注解
时间: 2023-10-23 22:13:20 浏览: 37
Lombok是一个Java库,用于简化Java代码。常用的注解有:
1. @Data: 用于生成getter、setter、toString、equals和hashCode方法。
2. @Getter/@Setter: 分别用于生成getter和setter方法。
3. @ToString: 用于生成toString方法。
4. @EqualsAndHashCode: 用于生成equals和hashCode方法。
5. @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor: 分别用于生成无参构造器、有参构造器和全参构造器。
6. @Builder: 用于生成Builder模式的类。
7. @Synchronized: 用于生成同步方法。
8. @Log: 用于生成日志记录的字段。
相关问题
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开发的效率,但在实际应用中需谨慎使用,保持代码清晰易懂。
阅读全文