equals()
method but do not override the
hashCode()
method or vice versa, which can potentially lead to problems
when the class is added to a Collection
or a HashMap
.
The quick-fix generates the default implementation for an absent method.
Example:
class StringHolder {
String s;
@Override public int hashCode() {
return s != null ? s.hashCode() : 0;
}
}
After the quick-fix is applied:
class StringHolder {
String s;
@Override public int hashCode() {
return s != null ? s.hashCode() : 0;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof StringHolder)) return false;
StringHolder holder = (StringHolder)o;
if (s != null ? !s.equals(holder.s) : holder.s != null) return false;
return true;
}
}