Vasyl' Vavrychuk [off-list ref] wrote:
Not sure what is right:
public abstract class AnyObjectId implements Comparable<ObjectId> {
or
public abstract class AnyObjectId implements Comparable<AnyObjectId> {
IMHO second, but class AnyObjectId contains some compareTo(ObjectId).
Hmmph. That probably can be AnyObjectId. At one point we only had
ObjectId, then AnyObjectId was introduced as a base so we can have
the immutable AnyObjectId and the mutable MutableObjectId subclasses.
compareTo doesn't care about the mutable state of its argument, this
is probably left-over code that didn't get converted when we added
the AnyObjectId base class.
So it should be the second, and the compareTo method should be made
to match that.
--
Shawn.