【发布时间】:2014-07-26 22:10:35
【问题描述】:
我创建了一个具有一个类型变量的通用类,它实现了 java.lang.Comparable。我在如何实现 compareTo() 方法时遇到问题,因为 运算符不能用于泛型类型。我遇到了这个
Create a compareTo to a Generic Class that Implements Comparable
通过遵循公认的 ans,我能够实现 compareTo 方法,但我不明白它是如何工作的,请任何人解释...... 我指的答案是……
public class DoubleKey<K extends Comparable<K>, J extends Comparable<J>>
implements Comparable<DoubleKey<K, J>> {
private K key1;
private J key2;
public DoubleKey(K key1, J key2) {
this.key1 = key1;
this.key2 = key2;
}
public K getFirstKey() {
return this.key1;
}
public J getSecondKey() {
return this.key2;
}
public int compareTo(DoubleKey<K, J> that) {
int cmp = this.getFirstKey().compareTo(that.getFirstKey());
if (cmp == 0)
cmp = this.getSecondKey().compareTo(that.getSecondKey());
return cmp;
}
}
【问题讨论】:
-
请贴一些代码。
-
看不懂的具体问一下! @sky3287944!
-
@shekharsuman 在接受的答案中我无法理解以下内容: Comparable 是一个接口,那么这两种泛型类型如何扩展它......也在 compareTo() 方法的实现中为什么是它在自身上递归......