💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 数组排序 --- ## 问题 题目:下面代码会发生什么错误?为什么? ``` Object [] myObject = { new String("foo"), new Integer(12), new String("foo"), new Integer(5), new Boolean(true) }; Arrays.sort(myObject); --- // 程序 package com.devin.java; import java.util.Arrays; public class Test { public static void main(String[] args) { Object [] myObject = { new String("foo"), new Integer(12), new String("foo"), new Integer(5), new Boolean(true) }; Arrays.sort(myObject); } } ``` ## 结果 第8行会发生一个运行期异常, java.lang.ClassCastException。 ## 结论 #### 因为Arrays类中的sort方法,如果对Object[ ]数组排序,首先要求所有元素都实现了Comparable接口,其次在运行时,将把每个元素都强制转换成第一个元素的类型。 #### Tips:题目中的数组元素类型有String、Integer、Boolean,都实现了Comparable接口。Arrays类进行排序时,会尝试把所有元素都转换成第一个元素的String类型,因此发生运行期异常。Arrays类是Java数组的一个工具类。