2006/7/26, Alex Blewitt <[EMAIL PROTECTED]>:
There are other approaches that could be used instead of this. For
example, the value of the hashCode could be cached in a private
variable and then invalidated when any setValue() methods are called.
One could even imagine a superclass performing this caching work:
public abstract class HashCode {
private boolean valid = false;
private int hash;
public final int hashCode() {
if (!valid) {
hash = recalculateHashCode();
valid = true;
}
return hash;
}
protected abstract int recalculateHash();
protected void invalidate() { valid = false; }
}
Of course, you could use the HashCode object to calculate the hash value :-)
Unfortunately
1. class can has temporary private fields (see BasicStroke.java)
2. class can has final fields which take part in hash code calculation
(see EllipticCurve.java)
--
Denis M. Kishenko
Intel Middleware Products Division
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]