為什么不能強(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;
//選課類就是一個(gè)List容器
public class ChooseCourse {
public List choose;
public ChooseCourse()
{
this.choose=new ArrayList();
}
public void add()
{
Course cr=new Course("1.","數(shù)據(jù)庫(kù)");
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("課程號(hào):"+cr.id+"課程名:"+cr.name);
}
}
public static void main(String[] args) {
ChooseCourse cc=new ChooseCourse();
cc.add();
cc.iterator();
// TODO 自動(dòng)生成的方法存根
}
}
錯(cuò)誤信息xception in thread "main" java.lang.ClassCastException: [Lcourse.Course; cannot be cast to course.Course。。
請(qǐng)問(wèn)哪里錯(cuò)了
2017-01-21
這里有問(wèn)題。cr是個(gè)course對(duì)象,cr2是個(gè)course數(shù)組對(duì)象,所以在list容器中你存放了兩個(gè)不同類型的對(duì)象。在后面cr2當(dāng)然不能強(qiáng)轉(zhuǎn)為course對(duì)象。應(yīng)該改為:
2017-01-21
樓上正解。你可以用泛型,這樣一開(kāi)始編譯你在添加的時(shí)候不同類型就通不過(guò)