Sér*_*nça 27 java equals hashcode lombok
如何使用@EqualsAndHashCodeWith Include,用于 Java 的 Lombok 库。
@EqualsAndHashCode.Include( )
Run Code Online (Sandbox Code Playgroud)
如何让 Equals 比较类 ID?
例子:
@EqualsAndHashCode.Include( )
@Table(name = "USER")
public class User
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IDENTITY_USER")
private Long identity;
}
Run Code Online (Sandbox Code Playgroud)
Mur*_*nik 35
该Include注释用于对成员(们)要在包括equals和hashCode方法。如果要准确指定应使用哪些成员(而不是所有非静态非瞬态成员的默认值),则可以使用注释中的onlyExplicitlyIncluded = true选项@EqualsAndHashCode:
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Table(name = "USER")
public class User
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IDENTITY_USER")
@EqualsAndHashCode.Include
private Long identity;
}
Run Code Online (Sandbox Code Playgroud)
你应该在现场使用它,它不是用于课堂本身的东西。您可以通过检查定义以下目标(字段和方法,而不是类)的注释的定义来检查这一点
@Target({ElementType.FIELD, ElementType.METHOD})
Run Code Online (Sandbox Code Playgroud)
这是一个如何使用它的例子
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Table(name = "USER")
public class User
{
@Id
@EqualsAndHashCode.Include()
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IDENTITY_USER")
private Long identity;
}
Run Code Online (Sandbox Code Playgroud)
从Lombok中,只需在必填字段上添加@EqualsAndHashCode.Include或即可@EqualsAndHashCode.Exclude
任何类定义都可以使用 @EqualsAndHashCode 进行注释,以让 lombok 生成 equals(Object other) 和 hashCode() 方法的实现。默认情况下,它将使用所有非静态、非瞬态字段,但您可以通过使用 @EqualsAndHashCode.Include 标记类型成员来修改使用哪些字段(甚至指定要使用各种方法的输出) @EqualsAndHashCode.排除。或者,您可以通过使用 @EqualsAndHashCode.Include 标记并使用 @EqualsAndHashCode(onlyExplicitlyIncluded = true) 来准确指定要使用的字段或方法。
@EqualsAndHashCode
@Table(name = "USER")
public class User
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IDENTITY_USER")
@EqualsAndHashCode.Include
private Long identity;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27627 次 |
| 最近记录: |