@EqualsAndHashCode的作用
时间: 2023-10-04 16:11:39 浏览: 73
lombok的jar包
`@EqualsAndHashCode` 是 Lombok 提供的注解之一,用于自动生成 `equals()` 和 `hashCode()` 方法。在 Java 中,当我们需要比较两个对象是否相等时,我们通常需要覆盖 `equals()` 和 `hashCode()` 方法。
使用 `@EqualsAndHashCode` 注解后,Lombok 会自动为我们生成这两个方法,避免了手动编写的繁琐和容易出错的过程。此外,注解还提供了一些可选参数,允许我们指定需要参与比较的属性、是否使用非空性检查等。
示例代码:
```java
import lombok.EqualsAndHashCode;
@EqualsAndHashCode
public class MyClass {
private int id;
private String name;
}
```
上面的代码中,`@EqualsAndHashCode` 注解应用在类上,表示为该类自动生成 `equals()` 和 `hashCode()` 方法。默认情况下,注解会使用所有非静态、非瞬态字段来生成方法。如果我们需要指定特定的字段,可以使用 `@EqualsAndHashCode` 注解的 `of` 属性:
```java
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(of = {"id", "name"})
public class MyClass {
private int id;
private String name;
private int age;
}
```
上面的代码中,`of` 属性指定了 `id` 和 `name` 两个字段参与 `equals()` 和 `hashCode()` 方法的比较。`age` 字段不会被考虑。
总之,`@EqualsAndHashCode` 注解提供了一种简单、便捷的方式来生成 `equals()` 和 `hashCode()` 方法,减少了代码冗余和出错的可能性。
阅读全文