Fix AnyObjectId's generic type declaration of Comparable
If you look at any implementation of Comparable in the JDK, you'll see that the type parameter for Comparable is supposed to be the type of the implementing class: http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html The current type signature of Comparable<Object> is pretty awful, at the very least because you can not, in fact, successfully compare AnyObjectId with any random subclass of Object. It also causes problems with type-inference and the scala.math.Ordering trait in Scala. In order to compile, this change *does* require removing the AnyObjectId.ompareTo(Object) method - which actually only ever cast to AnyObjectId in any case. Nothing in the JGit test suite requires this method, but it might constitute a breaking API change, so it would be best if it can be added in time for JGit 3.0. Change-Id: I3b549a5519ccd6785f98e444da76d2363bcbe41a
This commit is contained in:
parent
c93a593302
commit
e7fc19fc0c
|
@ -57,7 +57,7 @@
|
||||||
* with this instance can alter at any time, if this instance is modified to
|
* with this instance can alter at any time, if this instance is modified to
|
||||||
* represent a different object name.
|
* represent a different object name.
|
||||||
*/
|
*/
|
||||||
public abstract class AnyObjectId implements Comparable<Object> {
|
public abstract class AnyObjectId implements Comparable<AnyObjectId> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compare to object identifier byte sequences for equality.
|
* Compare to object identifier byte sequences for equality.
|
||||||
|
@ -184,10 +184,6 @@ public final int compareTo(final AnyObjectId other) {
|
||||||
return NB.compareUInt32(w5, other.w5);
|
return NB.compareUInt32(w5, other.w5);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final int compareTo(final Object other) {
|
|
||||||
return compareTo(((AnyObjectId) other));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compare this ObjectId to a network-byte-order ObjectId.
|
* Compare this ObjectId to a network-byte-order ObjectId.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue