我想知道为什么 Arrays 类的 sort 方法需要一个 Object[] 类型的参数。为什么参数不是 Comparable[] 类型。如果您不传递 Comparable[],它将生成 ClassCastException。
为什么... public static void sort(Object[] a) 而不是 public static void sort(Comparable[] a) ? 谢谢
最佳答案
因为第二种形式需要重新分配数组。即使您知道数组只包含可比较对象,如果原始类型是 Object[],也不能将其强制转换为 Comparable[],因为数组类型不匹配。
你可以这样做:
Object[] arr = new String[0];
String[] sarr = (String[]) arr;
但你不能这样做:
Object[] arr = new Object[0];
String[] sarr = (String[]) arr;
所以这是不成熟的优化:)
关于java - 为什么 Arrays.sort 采用 Object[] 而不是 Comparable[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56777671/