@Data 是 Lombok 库中的一个注解,它主要用于简化 Java 类中常见的样板代码。这个注解自动为类生成一些常用的功能,例如 `getter`、`setter`、`toString()`、`equals()`、`hashCode()` 以及 `requiredArgsConstructor()` 方法。通过使用 `@Data` 注解,你可以减少手动编写这些方法的工作量。
### `@Data` 注解的功能包括:
1. **`@Getter`**:为类中的所有字段生成 `getter` 方法。
2. **`@Setter`**:为类中的所有非 `final` 字段生成 `setter` 方法。
3. **`@ToString`**:生成 `toString()` 方法,输出类的所有字段信息。
4. **`@EqualsAndHashCode`**:生成 `equals()` 和 `hashCode()` 方法,比较对象时使用。
5. **`@RequiredArgsConstructor`**:为所有 `final` 字段生成一个构造函数。
### 使用示例:
假设有一个普通的 Java 类 `Person`:
import lombok.Data;
@Data
public class Person {
private String name;
private int age;
}
Lombok 的 `@Data` 注解会自动为 `Person` 类生成以下代码:
- `getName()` 和 `getAge()` 方法
- `setName(String name)` 和 `setAge(int age)` 方法
- `toString()` 方法
- `equals()` 和 `hashCode()` 方法
- 构造函数,初始化 `final` 字段
这样可以大幅减少样板代码,使得代码更加简洁、可维护。
### 依赖配置:
为了使用 `@Data` 注解,需要在项目中引入 Lombok 库。例如,在 Maven 项目中,可以在 `pom.xml` 中添加以下依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version> <!-- 请使用最新版本 -->
<scope>provided</scope>
</dependency>
使用 Lombok 之后,IDE(如 IntelliJ IDEA 或 Eclipse)需要安装 Lombok 插件来正确识别并处理这些注解。