首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么Arrays.sort使用Object[]而不是Comparable[]?

为什么Arrays.sort使用Object[]而不是Comparable[]?
EN

Stack Overflow用户
提问于 2010-02-12 02:19:27
回答 2查看 987关注 0票数 18

我想知道为什么Arrays类的排序方法请求一个Object[]类型的参数。参数不是Comparable[]类型的原因。如果你不传递一个Comparable[],它会生成一个ClassCastException。

为什么... public static void sort(Object[] a)而不是public static void sort(Comparable[] a)?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-12 02:38:53

因为第二种形式需要重新分配数组。即使知道数组只包含可比较数组,如果原始类型为Object[],也不能将其强制转换为Comparable[],因为数组类型不匹配。

您可以执行以下操作:

代码语言:javascript
复制
Object[] arr = new String[0];
String[] sarr = (String[]) arr;

但是你不能这样做:

代码语言:javascript
复制
Object[] arr = new Object[0];
String[] sarr = (String[]) arr;

所以现在优化还为时过早:)

票数 9
EN

Stack Overflow用户

发布于 2010-02-12 02:29:47

否则,您不能传入Object[]

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2246615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档