Ensure when equals() is implemented so is hashCode()

Update classes that override `equals()` to ensure that they also
implement `hashCode()`.

Issue: SPR-16968
This commit is contained in:
Phillip Webb
2018-06-25 18:15:59 -07:00
committed by Juergen Hoeller
parent 9de3689f63
commit 634f5c2792
3 changed files with 29 additions and 1 deletions

View File

@@ -39,6 +39,7 @@ import org.springframework.core.MethodParameter;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.core.ResolvableType;
import org.springframework.lang.Nullable;
import org.springframework.util.ObjectUtils;
/**
* Descriptor for a specific dependency that is about to be injected.
@@ -374,7 +375,6 @@ public class DependencyDescriptor extends InjectionPoint implements Serializable
}
}
@Override
public boolean equals(Object other) {
if (this == other) {
@@ -388,6 +388,16 @@ public class DependencyDescriptor extends InjectionPoint implements Serializable
this.nestingLevel == otherDesc.nestingLevel && this.containingClass == otherDesc.containingClass);
}
@Override
public int hashCode() {
final int prime = 31;
int result = ObjectUtils.nullSafeHashCode(this.containingClass);
result = prime * result + Boolean.hashCode(this.eager);
result = prime * result + this.nestingLevel;
result = prime * result + Boolean.hashCode(this.required);
return result;
}
//---------------------------------------------------------------------
// Serialization support