在通用 class 中实现 compareTo
implement compareTo in generic class
我用这个原型写了一个class:
public class AkbarWorks<T implements Comparable>
这个 class 包含 2 个数组列表:
private ArrayList<T> elements = new ArrayList<>();
private ArrayList<T> removed = new ArrayList<>();
我的问题是,我想比较 T 的 2 个对象,但是 compareTo 不起作用,我无法覆盖它。我在此函数中使用 compareTo:
public T getMin() throws IllegalStateException {
if (elements.size() == 0) {
throw new IllegalStateException();
} else {
T min = elements.get(0);
for (int i = 1; i < elements.size(); i++) {
if (elements.get(i).compareTo(min) < 0)
min = elements.get(i);
}
return min;
}
}
答案是:T 必须扩展 Comparable 而不是实现。
我用这个原型写了一个class:
public class AkbarWorks<T implements Comparable>
这个 class 包含 2 个数组列表:
private ArrayList<T> elements = new ArrayList<>();
private ArrayList<T> removed = new ArrayList<>();
我的问题是,我想比较 T 的 2 个对象,但是 compareTo 不起作用,我无法覆盖它。我在此函数中使用 compareTo:
public T getMin() throws IllegalStateException {
if (elements.size() == 0) {
throw new IllegalStateException();
} else {
T min = elements.get(0);
for (int i = 1; i < elements.size(); i++) {
if (elements.get(i).compareTo(min) < 0)
min = elements.get(i);
}
return min;
}
}
答案是:T 必须扩展 Comparable 而不是实现。