Please consider this proposal for a library to help implement equals and hashCode.
The doc includes a discussion of the motivation for adding such an API to the JDK, a map of the design space, and some thoughts on the subset of that space which might be most interesting: http://cr.openjdk.java.net/~cushon/amber/equivalence.html