public abstract class MyAbs implements Comparable<MyAbs>


这将起作用,但是如果它们都扩展MyAb,那么我将能够将A类和B类彼此进行比较。我要完成的却是完全相反的。

那么,有人知道将泛型类型变成自己的类的方法吗?起初似乎很简单……

编辑:

用一个例子进一步解释它。假设您有一个抽象类的动物,然后将其与“狗和蚂蚁”一起使用。

我不想将蚂蚁与狗进行比较,但是我想将一只狗与另一只狗进行比较。狗可能有一个变量,说明它是什么颜色,这就是我要在compareTo方法中使用的颜色。但是,当涉及到蚂蚁时,我宁愿要比较蚂蚁的大小而不是它们的颜色。

希望能清除它。但是可能是设计缺陷。

最佳答案

最直接的是:

public abstract class MyAbs<T> implements Comparable<T>


也许更有用的是使用Enum样式:

public abstract class MyAbs<THIS extends MyAbs<THIS>> implements Comparable<THIS>


您可能可以忽略该问题:

public abstract class MyAbs


外部Comparator对我来说更自然(也就是说,没有自然顺序)。

10-08 01:36