compareTo的通用可比类型

时间:2014-06-19 16:34:51

标签: java comparable compareto

我有一个名为getMember的方法,它可以返回任何Comparable对象,String,Integer等。 我无法弄清楚要使用什么作为类型参数,因此compareTo将起作用。以下代码无效

Comparable<? extends Comparable<?>> m1 = column.getMember(o1);
Comparable<? extends Comparable<?>> m2 = column.getMember(o2);

int compareTo = m1.compareTo(m2);

如果我不清楚,m1和m2将始终是相同的类型。没有类型参数的比较工​​作正常,我只想知道放在&lt;&gt;

中的内容

1 个答案:

答案 0 :(得分:1)

我认为你需要的是generic method。无论这部分代码在哪种方法都必须通用。如果没有getMember方法的来源,这是我最好的镜头。

public <T extends Comparable<? super T>> void doSomethingTheOPWants() {
    ...
    T m1 = column.getMember(o1);
    T m2 = column.getMember(o2);
    int compareTo = m1.compareTo(m2);
}

根据我目前对代码的了解,我不认为我可以创建相关/有价值的测试,所以我将其留给OP。