如何使用@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;
}
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;
}
您应该在字段上使用它,它不是用于类本身的东西。您可以通过检查定义以下目标(字段和方法,而不是类)的注释的定义来检查这一点
@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;
}
在龙目岛,只需在必填字段上添加@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;
}