A nice feature of Eclipse is that you can easily generate hashCode
and equals
methods for your Java class using the editor. You'll really appreciate this capability when you need to create these methods whenever you're doing anything related to sorting, comparisons, comparators, etc.
To generate hashCode
and equals
methods, just have the desired Java class open in the Eclipse editor, then click the Source menu, then choose the "Generate hashCode() and equals()" menu item. Assuming you have class variables available, Eclipse will generate the methods for you. (Of course, like any generated code you'll want to review it, but I've been able to use the generated code in several tests so far.)
Follow up
I've included the source code for a Java class below, so you can see what the class looked like before creating these methods, and then see the hashCode
and equals
methods Eclipse generated.
Comments
generate more code?
I try and hashCode method implemantation was:
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ( ( id == null ) ? 0 : id.hashCode() );
return result;
}
so complex. Why it can't just be like:
public int hashCode() {
return 31 + ( ( id == null ) ? 0 : id.hashCode() );
}
Just wondering.
Added a few more fields
I think this will make sense in a more-complicated Java class. For instance, I just generated a hash code in Eclipse, starting with this Java class that had a few different fields in it:
and then when I selected the option to generate a
hashCode
andequal
method, Eclipse generated thishashCode
method for me:In this case it used my
int
,float
, andString
fields to generate the hash code.The equals method
For completeness, here's the source code for the
equals
method that Eclipse generated for this example Java class: