為什么不能強(qiáng)制轉(zhuǎn)換
package course;
public class Course {
public String id;
public String name;
public Course(String id,String name)
{
this.id=id;
this.name=name;
}
}
package course;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
//選課類就是一個List容器
public class ChooseCourse {
public List choose;
public ChooseCourse()
{
this.choose=new ArrayList();
}
public void add()
{
Course cr=new Course("1.","數(shù)據(jù)庫");
Course[]cr2={new Course("2.","操作系統(tǒng)"),new Course("3.","計(jì)算機(jī)網(wǎng)絡(luò)")};?
choose.add(cr);
choose.add(1, cr2);
Course cr3=(Course) choose.get(0);
System.out.println("添加了課程"+cr3.id+cr3.name);
}
public void iterator()
{
Iterator it=choose.iterator();
while(it.hasNext())
{
Course cr=(Course) it.next();
System.out.println("課程號:"+cr.id+"課程名:"+cr.name);
}
}
public static void main(String[] args) {
ChooseCourse cc=new ChooseCourse();
cc.add();
cc.iterator();
// TODO 自動生成的方法存根
}
}
錯誤信息xception in thread "main" java.lang.ClassCastException: [Lcourse.Course; cannot be cast to course.Course。。
請問哪里錯了
2017-01-21
這里有問題。cr是個course對象,cr2是個course數(shù)組對象,所以在list容器中你存放了兩個不同類型的對象。在后面cr2當(dāng)然不能強(qiáng)轉(zhuǎn)為course對象。應(yīng)該改為:
2017-01-21
樓上正解。你可以用泛型,這樣一開始編譯你在添加的時候不同類型就通不過