fuz*_*cal 0 java generics collections
这是片段(来自Java Generics and Collections),下面是问题:
public static <T extends Comparable<? super T>> Comparator<T> reverseOrder()
{
return new Comparator<T>() {
public int compare(T o1, T o2) { return o2.compareTo(o1); }
};
}
Run Code Online (Sandbox Code Playgroud)
正如我所遵循的那样,你有一个使用通配符的方法,它可以比较类型T和"上面".然后它返回一个新的Comparator,它在其中显然有一个方法,它使用两个类型为T的对象返回compareTo的值.所以问题:
这没有参数,所以o1和o2来自哪里?
这是一个匿名类:
public static <T extends Comparable<? super T>> Comparator<T> reverseOrder() {
return new Comparator<T>() {
public int compare(T o1, T o2) {
return o2.compareTo(o1);
}
};
}
Run Code Online (Sandbox Code Playgroud)
你是:
compare中的匿名类中声明一个方法reverseOrder.o1和o2作为参数compare.