我是靠谱客的博主 深情外套,这篇文章主要介绍Java Object[] 向下强转的时候可能会发生异常,现在分享给大家,希望可以做个参考。

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

List<Long> longList = new ArrayList<>();
longList.add(1L);
Long[] longArrays = (Long[]) longList.toArray();        

比如说上面的代码执行的时候会发生异常:

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Long;

原因:其实这个错误不太明确,真正导致上面的强转发生异常的原因是,new ArrayList()创建的时候,有一个默认的初始长度,这个默认值是10;所以在toArray()创建新的数组的时候,会按照这个长度创建,但是其实longList中并没有10个数,这时就会导致上面的异常。这时候,我们需要自己定义一个长度跟源集合长度相同的数组穿进去就可以了,如下:

List<Long> longList = new ArrayList<>();
longList.add(1L);
Long[] longArrays = (Long[]) longList.toArray(new Long[longList.size()]);

转载于:https://my.oschina.net/u/1757225/blog/1506576

最后

以上就是深情外套最近收集整理的关于Java Object[] 向下强转的时候可能会发生异常的全部内容,更多相关Java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(103)

评论列表共有 0 条评论

立即
投稿
返回
顶部