【发布时间】:2018-06-05 16:55:00
【问题描述】:
我正在尝试根据 A 类的 int r 对 B 类中名为 BinOrder 的类型 A 的列表进行排序。
但是我收到 Collections.sort(BinOrder); 行的此错误;
The method sort(List<T>) in the type Collections is not applicable for the arguments (ArrayList<A>)
A类:
public class A{
int s;
int r;
public A(int si, int ri) {
s=si;
r= ri;
}
}
B类:
import java.util.ArrayList;
import java.util.Collections;
public class B implements Comparable<A> {
public Iterator<A> randomMethodName(int a) {
ArrayList<A> BinOrder = new ArrayList<A>();
A a = new A(1,3)
A a2 = new A(1,4)
BinOrder.add(a);
BinOrder.add(a2);
}
// sort array in increasing order of r
Collections.sort(BinOrder);
return BinOrder;
}
@Override
public int compareTo(A list) {
return null;
}
}
【问题讨论】:
-
你的 A 没有可比性。
-
您的示例中有很多编译器错误。请更正。
-
您希望您的
compareTo方法如何编译?null不能转换为int... -
我认为无论 compareTo() 方法在哪里都需要实现可比性? @JonSkeet,这不是编译错误,而是... IDE 错误?当我将鼠标悬停在 Collections.sort();它弹出错误。
-
@user2369869:您的代码有多个问题。如果要实现
Comparable,则需要实现compareTo,但您不要通过返回null来实现它...