如何实现可比较多次?
2022-09-03 13:16:40
我正在将一些代码升级到Java 5,显然我不了解泛型。我还有其他类实现了一次Compable,我已经能够实现。但是现在我有一个类,由于继承,它最终尝试实现2种类型的可比性。这是我的情况:
我有以下类/接口:
interface Foo extends Comparable<Foo>
interface Bar extends Comparable<Bar>
abstract class BarDescription implements Bar
class FooBar extends BarDescription implements Foo
有了这个,我得到错误“接口可比不能用不同的参数实现多次......”
为什么我不能在 FooBar 中实现一个 compareTo(Foo foo),而在 BarDescription 中实现一个 compareTo(Bar)?这不就是简单的方法重载吗?
编辑:我有很多类扩展了BarDescription。如果我删除了Bar上Compeable的类型参数,将其保留在原始状态,那么在对所有扩展BarDescription的类进行排序时,我会收到一堆编译器警告。这可以通过下面的通配符答案来解决吗?这个答案看起来很复杂,很难理解维护。