It's legal for a hashCode() method to return the same value for all instances.
transient variables aren't appropriate for equals() and hashCode().
public class MainClass {
public int x;
MainClass(int xVal) {
x = xVal;
}
public boolean equals(Object o) {
if (o instanceof MainClass == false) {
return false;
}
MainClass h = (MainClass) o;
if (h.x == this.x) {
return true;
} else {
return false;
}
}
public int hashCode() {
return (x * 2);
}
}
|