Java接口扩展了Comparable

我希望有一个由T A参数化的接口A ,并且还希望实现它的每个类也实现Comparable (使用T及其子类型)。 编写interface A extends Comparable似乎很自然interface A extends Comparable interface A extends Comparable ,但这不起作用。 那我该怎么办呢?

Comparable Comparable似乎意味着你有一个Comparable实例可以与T一个(未知)子类型进行比较,而不是它可以与T的任何子类型进行比较。

但是你不需要这样,因为Comparable可以将自己与T任何子类型进行比较,例如, Comparable可以将自己与Comparable进行Comparable

所以尝试:

 interface A extends Comparable { // ... } 

要么

 interface A> extends Comparable> { // ... } 

取决于您是否需要能够比较T实例以实现compareTo方法。

如果使用可比较的,则不需要在比较函数中指定子类型的可能性,本质上可以将对象X的任何子类型传递到声明类X的参数的方法中。请参阅下面的代码了解更多信息信息。

 public interface Test extends Comparable { } class TestImpl implements Test { @Override public int compareTo(final Number other) { return other.intValue() - 128; } } class TestMain { public static void main(final String[] args) { TestImpl testImpl = new TestImpl(); testImpl.compareTo(Integer.MIN_VALUE); } }