我想知道为什么Arrays类的排序方法请求一个Object[]类型的参数。参数不是Comparable[]类型的原因。如果你不传递一个Comparable[],它会生成一个ClassCastException。
为什么... public static void sort(Object[] a)而不是public static void sort(Comparable[] a)?谢谢
发布于 2010-02-12 02:38:53
因为第二种形式需要重新分配数组。即使知道数组只包含可比较数组,如果原始类型为Object[],也不能将其强制转换为Comparable[],因为数组类型不匹配。
您可以执行以下操作:
Object[] arr = new String[0];
String[] sarr = (String[]) arr;
但是你不能这样做:
Object[] arr = new Object[0];
String[] sarr = (String[]) arr;
所以现在优化还为时过早:)
发布于 2010-02-12 02:29:47
否则,您不能传入Object[]
。
https://stackoverflow.com/questions/2246615
复制相似问题