【发布时间】:2021-02-01 13:59:36
【问题描述】:
我被分配了一个问题:编写一个通用的 WeightedElement
到目前为止,我已经制作了类并实现了可比性,但是在为 W 制作 compareTo() 方法时遇到了问题。我有:
public class WeightedElement<E, W extends Comparable<W>> {
public E element;
public W weight;
public WeightedElement() {
element = this.element;
weight = this.weight;
}
public int compareTo(W data) {
if (this.weight == data.weight) {
return 0;
} else if (this.weight < data.weight) {
return 1;
} else {
return 1;
}
}
}
我遇到的问题是,当我比较权重时,找不到数据的权重。还有我必须创建的任何其他方法才能正确地拥有一个在其中一个变量上实现可比较的类吗?感谢您的帮助
【问题讨论】:
-
根据您的分配,您的 WeightedElement 应该实现 Comparable。然后,让它依赖于 W 的可比性,编写一个简单的代理函数,如
public int compareTo(WeightedElement<E,W> data) { return this.weight.compareTo(data.weight); }
标签: java generics comparator bluej