黑马程序员技术交流社区
标题:
程序为什么会抛异常?
[打印本页]
作者:
lovecx24
时间:
2013-12-5 21:03
标题:
程序为什么会抛异常?
最近在学习泛型,写了一个程序,却抛出了ClassCastException,求解?
List<String>[ ] isa = new ArraylList[10];
Object[ ] oa=(Object [ ]) isa;
List<Integer> li = new ArrayList<Integer>();
li.add(new Integer(3));
oa[i]=li;
String s=isa[1].get(0);
复制代码
作者:
(0.0)’
时间:
2013-12-5 21:29
我第一次见集合能这么写的:
要存String类型的数组是泛型为String[ ] 而不是在List后面加[ ]
思路都有问题,请问同学是看书么?
要是看的书,我就推荐你去看看毕向东老师的视频,或者去听黑马免费提供的基础课,晚上8点多YY有,一期是15天。
作者:
lichao
时间:
2013-12-5 21:50
List<String>[ ] isa = new ArraylList[10]; //有一个错误 ArrayList //好比建立了一个女人
Object[ ] oa=(Object [ ]) isa; //这里给女人穿上女人的衣服
List<Integer> li = new ArrayList<Integer>(); //建立一个男人
li.add(new Integer(3));
oa[i]=li; //给男人穿上女人的衣服
String s=isa[1].get(0);
复制代码
// 当脱了衣服是男人还是男人
要看清它的本质,
作者:
胡永城
时间:
2013-12-5 23:41
import java.util.*;
public class Demo {
public static void main(String[] args) {
List<String>[] isa = new ArrayList[10]; // 创建一个List<String>数组
for(List<String> s : isa)
System.out.println(s); // 输出验证,每个List<String>都为null
/* 向上转型,导出类转型成基类
* 向上转型一句话总结“新类是现有类的一种类型”
* 专有类转型成通用类,会保留导出类的实现逻辑
* List<Integer> li = new ArrayList<Integer>();也是一种向上转型
*/
Object[] oa = (Object[]) isa; // 向上转型,java中,引用数据类型都是object的导出类
List<Integer> li = new ArrayList<Integer>();
li.add(new Integer(3));
oa[0] = li;
/*以上代码,把new Integer(3)添加到List<Integer>的li中,
* 再把li赋值给oa[0],但是li中数据是Integer,oa[0]是List<String>,数据是String
* Integer不能赋值给String,所以会出现ClassCastException类转换异常
*/
String s = isa[0].get(0);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2