您的位置:首页 > 移动开发 > Objective-C

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

2017-09-10 22:07 671 查看
错误信息:”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方法,通过反射获得参数类型,在方法内部进行转换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐