Lombok 释放:通过 Getters、Setters、Constructors、Builders 等提高 Java 效率-java教程

首页 2024-07-12 03:07:39

龙目岛项目简介

Project Lombok 它很受欢迎 Java 图书馆的目的是在编译过程中自动生成常见图书馆 Java 注释代码可以节省大量的时间和精力,从而降低样板代码,提高编码人员的工作效率

龙目岛计划是什么? Lombok 通过提供注释来解决项目 Java 这些注释消除了重复代码结构的手动编写(例如) getter、setter、构造函数、equals、hashCode 和 toString 需要方法)。通过使用 Lombok 注释注释字段或类别,编码人员可以指示编译器自动生成这些方法,从而减少模型代码量,使其 Java 类别更紧凑,更可读。

为什么要用? Lombok 项目? 在 Java 中使用 Project Lombok 它具有多种引人注目的优点,有助于提高生产力、代码质量和可维护性。

以下是选择龙目岛项目的几个原因。
它减少了“样板代码”。
它还提高了代码的可重用性和可读性。
很容易实现,没有任何复杂性。
与“IDE易于集成。

如何在 Maven 项目上用 Java 实现 Lombok 我们的大部分项目都是基于Maven的。因此,我们只需要“Project Lombok“依赖项添加到项目中”Pom.xml”可以在文件中使用。

将Lombok复制到maven存储库中 “Maven存储库”Pom.xml添加最新的lombok依赖项并保存,然后刷新项目。

Java 中 Lombok 项目的 Getters、Setter 功能 在 Java 到目前为止,最常见的做法是使用“Java Beans”模式添加 getter 和 setter。大多数 IDE 这些模式将自动生成代码。

让我们在“数据对象”和“数据工厂”的帮助下创建代码 getter 和 setter 理解这种方法:

没有 Lombok 的数据对象

尽管手工创作 getter 和 setter 方法的传统 JavaBeans 该方法可以完成工作,但它有一些缺点和限制,使其不理想,特别是在现代 Java 所有这些缺点主要在于开发环境 Lombok 它被掩盖了。

因此,我们更喜欢使用它 Lombok 模型,而不是这个。以下是它在下面。 Java 实现中的方法:

Java 中 Project Lombok 构造函数特性 没有Lombok的构造函数,我们必须手动定义每个构造函数,这可能很无聊,很容易出错,特别是对于有许多字段的类别。此外,我们还需要处理各种构造函数配置,这将增加代码的复杂性。

Lombok 通过 @NoArgsConstructor、@AllArgsConstructor 和 @RequiredArgsConstructor 注释简化了这个过程。

没有 Lombok 的构造函数

使用 Lombok 注释可以减少需要手动编写的样板代码量。使用 Lombok,您只需注释类和字段,构造函数就会根据指定条件自动生成。这将使代码更干净、更简洁。

各种龙目岛的特点和属性
    ToString 生成
    在Java中,toString()是java.lang.Object类中定义的方法的目的是返回对象的字符串表示形式。 toString() 方法被 Java 所有类别的继承都在那里 Object 类中的默认实现返回一个字符串,包括类名后跟“at”符号 (@) 以及对象哈希码的16进制表示形式。
  • 然而,Object 提供的 toString() 默认实现对特定类别可能并不总是有意义或有用的。因此,开发人员通常会在自己的类别中重写 toString() 为了提供更好地描述对象状态或属性的自定义字符串表示形式,方法。
  • 根据我们的例子,Profile 类别可能会重写 toString() 返回包含姓名、姓氏、职称和年龄信息的字符串。重写 toString() 允许以人类可读的格式轻松打印或记录对象信息,有助于调试、记录或向用户显示信息。
  • 如果不使用 ToString Lombok 注释,我们必须在那里 Profile 手动实现类中 toString() 方法。我们以创建所需字符串的形式连接名称、姓氏、职称和年龄字段。这种手动实现了 Lombok 的 @ToString 注释相同的结果。

不使用Tostring注释功能

    @ToString 注释为类生成一个 toString() 方法,提供字段的字符串表示形式。当我们丰富我们的数据模型时,我们不需要自己编写和维护它。
  • 使用此注释,在 profile 实例上调用 toString() 将返回包含其字段值的字符串。
  • @Exclude 注释对各种注释都很有用,比如 Getters、Setters、ToString、EqualAndHashCode 等等。让我们通过 @ToString 注解示例来理解这一点。
  • 通过使用 @ToString(exclude = {“designation”}) 注释 designation 字段
  • Lombok 不包括在内 @ToString 生成的 toString() 方法。如果你想避免在对象的字符串表示形式中显示某些字段,这可能非常有用。

2. EqualAndHashCode 生成

    在Java中,equals()和hashCode()是两种常用的方法,分别用于实现对象相等和哈希码生成。
  • equals() 方法:equals() 该方法用于比较两个对象是否相等。默认情况下,Object 类提供的 equals() 方法比较对象引用,这意味着只有当比较的两个对象是内存中的相同实例时,它才会返回 true。然而,自定义类通常需要重写 equals() 该方法根据对象属性定义了有意义的相等概念。
  • hashCode() 方法:hashCode() 该方法用于生成对象的哈希码值。哈希码是表示对象状态的整数值,通常用于基于哈希的数据结构(如哈希表)。 hashCode() 该方法非常重要,因为它允许在哈希的集合中有效地存储和检索对象。
  • 在我们的例子中,我们手动实现并重写 equals() 比较两种方法 Profile 对象的字段是否相等,以及 hashCode() 根据字段生成哈希码的方法。
  • 我们使用 java.util.Objects 类中的 Objects.equals() 比较字段是否相等,并使用方法 Objects.hash() 生成哈希码的方法。

不使用 EqualAndHashCode 注解功能

    @EqualsAndHashCode 根据类字段生成注释 equals() 和 hashCode() 方法。
  • 通过这个注释,Lombok 所有使用类的字段生成 equals() 和 hashCode() 方法。
  • 这样就消除了手动实现这些方法的需要,减少了模型代码,提高了代码的可维护性。

3.数据注释 如果不使用 @data 注释必须在代码中手动实现 getter、setter 和 Constructors 功能。

  • 不使用数据注释功能

    立即学习“Java免费学习笔记(深入);

  • @data 注释是一种方便快捷的方式,它捆绑在一起 @Getter、@setter、@NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor、@ToString、@EqualsAndHashCode 还有更多的注释。

    立即学习“Java免费学习笔记(深入);

  • 使用@data,Lombok根据类中声明的字段自动为我们生成这些方法。这大大减少了我们需要编写和维护的模型代码数量,使我们的代码更加简单和可读。

    立即学习“Java免费学习笔记(深入);

    建造者模式
    回到我们的 Profile 例如,构建一个新的例子需要使用一个可能有多个四个参数的构建函数。当我们将其他属性引入类别时,这项任务将变得难以处理。
  • 幸运的是,幸运的是,Lombok 通过其 @builder 该功能提供了一个强大的解决方案,有助于利用构建器模式创建新的例子。让我们将此功能集成到我们身上 Profile 类中。
包 org.example.dataobjects;

导入龙目岛。*;

@Getter

@setter
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@ToString(exclude = {"designation"})
@EqualsAndHashCode
@建造者
@数据
公开课简介{
私人字符串名称;
私有字符串姓氏;
指定私有字符串;
私人整数年龄;

public static void main(String[] args) {

// 使用构建器创建 Profile 的实例

配置文件 profile = Profile.builder()
.firstName(部分)
.lastName("Kathrotiya")
.designation(QA自动化工程师)
.年龄(23)
.build();
}
}

德隆博克

    Delombok 是 Lombok 这个项目提供了一个可以逆转的工具 Lombok 注释的效果本质上是“delombok “你的代码”。它允许您通过扩展注释和替换它们将生成的相应样板代码来包含 Lombok 注释的 Java 源代码转换为纯 Java 代码。
  • Delombok 主要目的是促进和不直接支持 Lombok 注释环境或工具的兼容性和可操作性。例如,如果您需要在开发环境中不安装它 Lombok 开发人员共享您的代码,或者您想使用您不理解的代码 Lombok 分析或重视注释工具构 Lombok 您可以使用注释代码 Delombok 将代码转换为在这些上下文中可以理解和使用的形式。
  • Delombok 可通过命令行调用,也可集成到 Maven 或 Gradle 在建筑工具中等。在源代码上运行时 Delombok 当时,它会处理 Java 文件、扩展 Lombok 没有任何注释和生成 Lombok 注释的新 Java 文件。生成的代码与原始代码相同,但不依赖于 Lombok。
  • 总的来说,Delombok 是 Lombok 使用该项目提供的有用工具 Lombok 注释增强了代码库的互操作性和可维护性,使开发人员能够使用它 Lombok 优点,同时保证与各种开发环境和工具的兼容性。
结论 虽然本文重点介绍了我发现的最有用的功能,但是 Lombok 它还提供了大量的附加功能和自定义功能。

Lombok 文档是一种有价值的资源,为每个注释提供了深入的解释和例子。如果您对本文感兴趣,我强烈建议您进行深入的研究 Lombok 为了找到更多的可能性,文档。
此外,该项目网站还提供跨编程环境集成 Lombok 综合指南。不管你用什么。 Eclipse、NetBeans、IntelliJ 还是别的,请放心,Lombok 它可以与您的工作流程无缝集成。作为一个常见的人 IDE 我可以证明之间切换的人 Lombok 多功能性和可靠性在所有平台上。
总体而言,Project Lombok 它提供了一套可以简化的综合功能 Java 开发,减少代码冗长,促进最佳实践。
Project Lombok 它提供了一套可以简化的综合功能 Java 测试,减少代码冗长,促进最佳实践。通过合并 Lombok 构建器和 Lombok 测试人员可以进一步简化代码,提高构造器的可维护性。

以上是Lombok 释放:通过 Getters、Setters、Constructors、Builders 等提高 Java 详细的效率内容,请关注其他相关文章!


p