我在某个库中找到了这段代码:
public static <T> List<T> sort(
Collection<T> collection,
Comparator<T> comparator)
{
Object[] a = collection.toArray(new Object[collection.size()]);
//noinspection unchecked
Arrays.sort(a, (Comparator<? super Object>) comparator);
return cast(Arrays.asList(a));
}
我的检查员发誓
不可转换的类型;无法投射
java.util.Comparator<T>
&#39;java.util.Comparator<? super java.lang.Object>
在哪种情况下此代码可以正常工作?
答案 0 :(得分:1)
要回答这个问题,代码无效。
我建议进行以下修改:
public static <T> List<T> sort(Collection<T> collection, Comparator<T> comparator) {
List<T> a = new ArrayList<T>(collection);
a.sort(comparator);
return a;
}
这将一举修复编译错误和的可怕性。
免责声明:代码可能无法编译或工作,因为它在我的手机上被翻阅(但它有可能起作用)