关于ArrayList数组转换为Integer类型的报错问题

<span style="font-size:14px;">
</span>

学习Java SE的过程中,ArrayList在转换为Integer数组的时候发生了错误。我们知道,ArrayList有个方法是toArray(),但是当使用这段代码时却报错了
<pre name="code" class="java"><span style="font-size:14px;">Integer[] in = (Integer[]) list.toArray();
		
		for (int i=0; i<in.length; i++) {
			
			System.out.println(in[i].intValue());
		}</span>

 

报错是:

<span style="font-size:14px;">Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
	at com.baidu.ArrayListTest4.main(ArrayListTest4.java:17)</span>


原来是ArrayList返回的是一个Object数组,而Object数组又不能转换为整形(Integer)数组,所以产生了错误,解决这个问题的办法很简单,就是

<span style="font-size:14px;">Integer[] in = (Integer[]) list.toArray(new Integer[0]);
		
		for (int i=0; i<in.length; i++) {
			
			System.out.println(in[i].intValue());
		}</span>

前后对照下,就是新new一个Integer[0]数组就行,虽然不知道为什么,但是记住就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值