标题: 大家看看哪里错了啊 [打印本页] 作者: 张东贤 时间: 2013-3-26 20:51 标题: 大家看看哪里错了啊 List<String>[] lsa = new List<String>[10]; // illegal
Object[] oa = lsa; // OK because List<String> is a subtype of Object
List<Integer> li = new ArrayList<Integer>();
li.add(new Integer(3));
oa[0] = li;
String s = lsa[0].get(0);
跑出ClassCastException 作者: itserious 时间: 2013-3-26 21:10
你主要错
1.不能定义带泛型的数组。
2.还有就是你定义的List<String>中的泛型是String
3.而你的List<Integer> li = new ArrayList<Integer>(); 中泛型中存放的却是Integer
4.你 lsa[0].get(0); 取出的是Integer,而你却用String s 来接受,
这样肯定会抛类型转换异常了!
//你这里是编译通不过的。不能是带泛型的数组。Cannot create a generic array of List<String>
List[] lsa = new List[10]; //new List<String>[10];
Object[] oa = lsa; //
//List<String>[] lsa = new List<String>[10];
List<Integer> li = new ArrayList<Integer>();
li.add(new Integer(3));
oa[0] = li;
//String s = lsa[0].get(0);
Integer s = (Integer) lsa[0].get(0);
System.out.println(s);