ClassCastException
是 Java 中的一种运行时异常,通常发生在尝试将一个对象强制转换为不兼容的类型时。当对 ArrayList<Object>
进行排序时,如果列表中的元素类型不一致或存在不兼容的类型转换,就可能触发这个异常。
Comparable
接口。Comparator
接口。当对 ArrayList<Object>
进行排序时,如果列表中包含不同类型的对象,Java 在执行排序操作时会尝试进行类型转换,从而引发 ClassCastException
。
Comparator
来明确指定排序规则。Comparator
来明确指定排序规则。以下是一个完整的示例,展示了如何安全地对 ArrayList<Object>
进行排序:
import java.util.*;
public class SafeSortExample {
public static void main(String[] args) {
List<Object> mixedList = new ArrayList<>();
mixedList.add(1);
mixedList.add(3);
mixedList.add(2);
mixedList.add("string"); // 不安全的添加
List<Integer> safeList = new ArrayList<>();
for (Object obj : mixedList) {
if (obj instanceof Integer) {
safeList.add((Integer) obj);
}
}
Collections.sort(safeList); // 安全排序
System.out.println("Sorted safe list: " + safeList);
}
}
通过上述方法,可以有效避免 ClassCastException
的发生,确保排序操作的稳定性和安全性。