我有一个名为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;
中的内容答案 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。