Joe*_*oel 18 java casting interface comparable
我想知道为什么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;
Run Code Online (Sandbox Code Playgroud)
但你做不到:
Object[] arr = new Object[0];
String[] sarr = (String[]) arr;
Run Code Online (Sandbox Code Playgroud)
所以这是不成熟的优化:)
归档时间: |
|
查看次数: |
931 次 |
最近记录: |