Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljav

来源:互联网 发布:手机添加网络 编辑:程序博客网 时间:2024/06/14 09:40

错误信息:”Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;

这个异常是下面的代码抛出的:

        List<Integer> list = new ArrayList<Integer>();        Integer[] array = (Integer[])list.toArray();
这个类型转换看上去好像很对,也不会有编译错误。

但是实际上是错误的,因为list.toArray返回类型是Object[],而Integer[]不是Object[]的子类,虽然Integer是Object的子类,所以不能进行强制转换。

正确的做法应该是这样的:

        List<Integer> list = new ArrayList<Integer>();        Integer[] array = new Integer[1];        array = list.toArray(array);
把数组类型传入toArray方法,通过反射获得参数类型,在方法内部进行转换。

阅读全文
0 0
原创粉丝点击