Lombok 基础

Lombok 基本注解

Lombok 高级注解

Lombok FAQ

Lombok 的EqualsAndHashCode


Lombok 是一个 Java 库,用于通过注解自动生成常见的 Java 代码,以减少样板代码的编写,包括生成 equals()hashCode() 方法。下面我将为您提供一个示例代码,以及有关如何使用 Lombok 的 @EqualsAndHashCode 注解的详细内容。

首先,确保您已经在项目中添加了 Lombok 依赖,并在代码中导入 Lombok 相关的包。通常,您需要在项目的 pom.xml 文件中添加以下依赖(如果使用 Maven 构建项目):

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.22</version> <!-- Lombok 的版本号可能会有变化 -->
    <scope>provided</scope>
</dependency>

接下来,创建一个示例类,并在该类上使用 @EqualsAndHashCode 注解来自动生成 equals()hashCode() 方法。这是一个示例代码:

import lombok.EqualsAndHashCode;

@EqualsAndHashCode
public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getter and setter methods (you can generate them with Lombok too if needed)

    public static void main(String[] args) {
        Person person1 = new Person("Alice", 30);
        Person person2 = new Person("Bob", 25);

        // Using the generated equals() and hashCode() methods
        boolean areEqual = person1.equals(person2);
        int hash1 = person1.hashCode();
        int hash2 = person2.hashCode();

        System.out.println("Are persons equal? " + areEqual);
        System.out.println("Hash code of person1: " + hash1);
        System.out.println("Hash code of person2: " + hash2);
    }
}

在上述示例中,我们创建了一个 Person 类,并在其上方使用了 @EqualsAndHashCode 注解。这样,Lombok 会自动生成 equals()hashCode() 方法,这些方法将考虑 nameage 字段的值来进行比较和哈希计算。

要注意的是,Lombok 自动生成的 equals() 方法会使用所有字段进行比较,而 hashCode() 方法也会考虑所有字段的值来计算哈希码。如果您只想考虑某些字段,可以在 @EqualsAndHashCode 注解中使用 excludeof 参数来明确指定。

例如,如果要排除 age 字段,可以这样使用 @EqualsAndHashCode 注解:

@EqualsAndHashCode(exclude = "age")

这样,Lombok 将仅考虑 name 字段来生成 equals()hashCode() 方法。

希望这可以帮助您了解如何在 Java 中使用 Lombok 的 @EqualsAndHashCode 注解以及它的相关详细内容。

@EqualsAndHashCode注解用于自动生成equals()和hashCode()方法。@EqualsAndHashCode注解@E ...
Lombok(ProjectLombok)是一个Java库,它通过注解来简化Java代码的编写,减少样板代码,提高代码的可读性和可维护性。@ ...
Lombok是一个Java库,它通过注解来简化Java类的开发,减少样板代码的编写。另外,确保在项目的构建工具(如Maven或Gradle) ...
Lombok是一个Java库,它可以通过注解来自动生成Java类的常见方法(如Getter、Setter、equals、hashCode、t ...
Lombok(ProjectLombok)是一个Java库,它通过注解来简化Java代码的编写,特别是用于减少样板代码的冗余。gradle` ...