当前位置: 首页 > 知识库问答 >
问题:

如何在Include中使用@EqualsAndHashCode-Lombok

暨正真
2023-03-14

如何使用@EqualsAndHashCode包含,Lombok库Java。

@EqualsAndHashCode.Include( )

如何让等号比较类 ID?

示例:

@EqualsAndHashCode.Include( )
@Table(name = "USER")
public class User
{

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "IDENTITY_USER")
  private Long identity;
}

共有3个答案

左丘峰
2023-03-14

在龙目岛,只需在必填字段上添加@EqualsAndHashCode.包含@EqualsAndHashCode.排除

任何类定义都可以使用@EqualsAndHashCode进行注释,以让lombok生成equals(Object其他)和hashCode()方法的实现。默认情况下,它将使用所有非静态、非瞬态字段,但您可以通过使用@EqualsAndHashCode.包括或@EqualsAndHashCode.排除标记类型成员来修改使用的字段(甚至指定要使用各种方法的输出)。或者,您可以通过使用@EqualsAndHashCode.包括并使用@EqualsAndHashCode标记它们来准确指定您希望使用的字段或方法。

@EqualsAndHashCode
@Table(name = "USER")
public class User
  {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "IDENTITY_USER")
  @EqualsAndHashCode.Include
  private Long identity;
 }
谢涵亮
2023-03-14

您应该在字段上使用它,它不是用于类本身的东西。您可以通过检查定义以下目标(字段和方法,而不是类)的注释的定义来检查这一点

@Target({ElementType.FIELD, ElementType.METHOD})

下面是如何使用它的示例

@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Table(name = "USER")
public class User
{

  @Id
  @EqualsAndHashCode.Include()
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "IDENTITY_USER")
  private Long identity;
}
丁阎宝
2023-03-14

Include注释用于要包含在等于 方法中的成员。如果要精确指定应使用哪些成员(而不是所有非静态非临时成员的默认值),可以在 @EqualsAndHashCode注释中使用 onlyExplicitlyIncluded=true选项:

@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Table(name = "USER")
public class User
{

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "IDENTITY_USER")
  @EqualsAndHashCode.Include
  private Long identity;
}
 类似资料:
  • 问题内容: 我有一个很大的功能,希望仅在需要时才加载。因此,我认为使用include是必经之路。但是我也需要几个支持功能-仅在go_do_it()中使用。 如果它们在包含的文件中,则会出现重新声明错误。参见示例A 如果将支持功能放在include_once中,则可以正常工作,请参见示例B。 如果我对func_1代码使用include_once,则第二次调用将失败。 我对为什么include_onc

  • 错误是... 关于继承和@EqualSandHashCode以及Lombok有没有我正在滥用的最佳实践?或者有什么办法?

  • 问题内容: 我正在使用Jade和Express,我想在我的include语句中使用一个变量。例如: app.js layout.jade 当我这样做时,我得到了错误 我什至试过 无济于事。 问题答案: AFAIK JADE不支持动态包含。我建议在模板之外“包含”,即 app.js layout.jade

  • 问题内容: 我正在尝试编译一个包含以下内容的小.c文件: 在我拥有.c文件的同一文件夹中,我拥有带有所有这些文件(以及更多文件)的/ openssl,也在突触包管理器中,我看到安装了OpenSSL,我正在尝试使用以下方法进行编译: 但我总是得到错误: 我要编译的文件只是一个.c文件,没有Makefile或./configure。 我已经尝试过: 并尝试再次编译,但我得到相同的错误。 我应该怎么做才

  • 问题内容: 知道如何将sequelize与include属性一起使用(当您只需要包含include表的特定字段时)? 目前,我有这个(但不能按预期工作): 问题答案: 这样的事情应该工作

  • 问题内容: 来自C ++环境,我习惯于将所需的许多功能拆分为一个文件,然后执行,然后将这些功能原型添加到主.cpp文件中。现在,我开始使用Java(主要是使用minecraft ModloeaderMp),并且我已经制作了一个文件,其中包含一些预制函数(例如,一些用于文件复制,提供项目堆栈的函数等)。因为我已经在使用该语句,是否可以导入函数或者可以做其他事情? 问题答案: 您不是用Java编写的。