我想在我的一些测试中使用reflectionEquals,但发现只有在所有非null字段的类实现equals时它才有效。对于我的某些领域,情况并非如此。我想过使用一个子类来覆盖equals并且在没有实现equals(headers)的字段上使用显式使用reflectionEquals。这有效,但很混乱,想检查是否有更好的方法。身份等于在我的测试中不起作用的原因是我正在使用gson将对象编组到数据库中。这是我的子类解决方案:
@Override
public boolean equals(Object obj) {
TrackingEvent other = (TrackingEvent) obj;
return EqualsBuilder.reflectionEquals(this.getHeaders(), other.getHeaders()) &&
EqualsBuilder.reflectionEquals(this, other, new String[] {"headers"});
}