"可比较"的精确程度是多少?

dfe*_*uer 0 java

Comparable界面看起来像

interface Comparable<T>
{
  public int compareTo(T other);
...
}
Run Code Online (Sandbox Code Playgroud)

这本身并没有说明实现Comparable<T>和类型之间的关系T.Java规范的文本似乎暗示一个实现Comparable<T>应始终是它的子类T,但据我所知,它没有明确说明.这应该是吗?此外,如果实施AComparable<T>严格的子类T,则反对称规则似乎表明,T必须是一个实现Comparable<Ap>了一些超类ApA.这是一个相当严格的要求.事实上,它是非常严格的,我认为通常不可能这样做,除非这两个类是专门为此目的而构建的.有什么想法吗?我错过了什么,或者这是一个奇怪的界面?

dim*_*niy 5

这个界面早在仿制药推出之前很久就已经存在了

public int compareTo(Object other);

这仍然是编译成字节代码后的样子.通过添加泛型,该界面被修改以提供一些基本类型安全性.

如果我理解你的问题,你会问"是什么阻止我这样做?"

class SomeClass implements Comparable<SomeUnrelatedClass>

好吧,没什么.当该compareTo方法与对象一起使用时,您必须考虑哪些类型对哪些类型compareTo有用,并且更新的界面仍然如此.