我正在创建一个泛型类,该泛型类具有一个应该对数组集合进行排序的方法,该集合可以是书本,也可以是CD。我在两个类型类中实现了Comparable,并试图对GenericCollection类中的数组进行排序。在泛型类中排序
我的方法貌似现在这种权利:
public void sort(){
for (int i = 0; i < collection.length; i++) {
for (int j = 0; j < collection.length; j++) {
if (((T)collection[i]).compareTo((T)collection[j]) > 0){
T t = (T)collection[i];
collection[i] = collection[j];
collection[j] = t;
}
}
}
}
这使我的错误对象是不具有可比性。如果我尝试转换为键入T,那么出现CompareTo的T未定义的错误。如果我尝试类似:
<T extends Comparable>
我可以编译,但我得到一个运行时错误,即使我有两种类型正在使用这个类可比定义。
如何让泛型类型能够在自己的类中运行compareTo方法。
感谢您的任何帮助。
集合的类型是什么? – JustinKSU
什么是运行时错误? – Daniel
@Justin。它是T类型的通用集合...换句话说,它可以是书或CD(客户端类)。我在使用任何一种类型时都会遇到错误。 – Andy