我遇到过这段代码.我从未见过以这种方式实现的平等.让我感到震惊的是,它真的是"整洁",从某种意义上来说只需要一行样板.
然而,我以前从未见过这种方法的事实让我怀疑.根据Java equals和hashCode的合同,以下实现合法吗?
@Override
public boolean equals(Object o)
{
return this == o || o instanceof DetailsPageTrackingRequest
&& this.hashCode() == o.hashCode();
}
@Override
public int hashCode()
{
//java.util.Objects
return Objects.hash(pageTrackingRequest, searchId, productId);
}
Run Code Online (Sandbox Code Playgroud)