生成等于和哈希码时忽略属性

2022-09-01 17:19:59

假设我有一个类客户:

public class Customer {

private String firstName;
private String lastName;
private String doNotAddMeToEquals;

//Getters and Setters below

}

我正在使用Eclipse中的Guava Eclipse插件来生成我的equals()和hashCode()方法;但是,我也可以使用eclipse->Source -> Generate HashCode / Equals。无论哪种方式...无所谓。

有没有办法对属性进行注释 doNotAddMeToEquals,这样当我使用番石榴插件生成 equals & hashcode 方法时,该属性不会显示在列表中?

无需更改插件或创建模板。

提前致谢!!


答案 1

听起来你想要的是这样的:

http://projectlombok.org/features/EqualsAndHashCode.html

它允许您使用注释来驱动等于和哈希码方法中包含的属性。


答案 2

使用龙目岛,您可以从哈希码和等于中排除属性,例如:

@EqualsAndHashCode(exclude = {"nameOfField"})

这将是在你的情况下

@EqualsAndHashCode(exclude = {"doNotAddMeToEqualsAndHashCode"})

推荐