为什么Arrays.sort采用Object[]而不是Compeable[]?
2022-09-02 22:19:17
我想知道为什么Arrays类的排序方法要求一个Object[]类型的参数。为什么参数的类型不是可比较的[]。如果你没有传递一个Compable[],它会生成一个ClassCastException。
为什么。。。公共静态 void sort(Object[] a) 而不是 public static void sort(Comparable[] a) ?谢谢
我想知道为什么Arrays类的排序方法要求一个Object[]类型的参数。为什么参数的类型不是可比较的[]。如果你没有传递一个Compable[],它会生成一个ClassCastException。
为什么。。。公共静态 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;
因此,优化还为时过早:)
否则你不能通过。Object[]