为了账号安全,请及时绑定邮箱和手机立即绑定

如果要是不给Student类设置Course泛型设置的话,该怎么写呢?

最后的for each 循环要怎么写:

public static void main(String[] args) {

SetTest st = new SetTest();

st.testAdd();

st.testForEach();

//创建一个学生对象

Student student = new Student("1","小明");

System.out.println("欢迎小明同学来选课" + "\n" +"请输入要修的课程:");

//创建Scanner对象

Scanner console = new Scanner(System.in);

for(int i=1;i<4;i++){

System.out.println("请输入要选的第"+i+"门课程的编码");

String courseId = console.next();

for(Course cr:st.couresToSelect){

if(cr.id.equals(courseId)){

student.courses.add(cr);

}

}

}

//打印出学生所选的课程

for(Course cr:student.courses){

System.out.println(cr.id+":"+cr.name);

}

}

加粗的应该写什么代码?

正在回答

2 回答

不加Course泛型的话foreach循环应该还是一样的写法,foreach(对象类型 对象名:需要遍历的对象){...}

不过当遍历的对象中存在其他类型的数据的时候可能会出现类型转换错误,泛型的作用是规范类型

0 回复 有任何疑惑可以回复我~
#1

山巅对弈 提问者

不晓得你的想法和我的 想法一不一样,我已经找到解答方法了,谢谢……
2017-08-30 回复 有任何疑惑可以回复我~

for(Object cr:student.courses){

Course cd = (Course)cr;

System.out.println(cd.id+":"+cd.name);

}


0 回复 有任何疑惑可以回复我~
#1

冰封一切1

额,想说的是,你不要泛型foreach方法确实是写Object类型,这里没错。但是建议你还是使用泛型,因为你没注意到下面要从Object类型转换成Course对象类型吗?如果你student.courses这个对象存有不规范的数据,这些数据是不能强制转换成Course类型的,那时会报错的。刚刚是我没回答好,没理解你的意思,不过个人建议你还是使用泛型。
2017-08-30 回复 有任何疑惑可以回复我~
#2

山巅对弈 提问者 回复 冰封一切1

我就是想知道下不用泛型要怎么写……
2017-08-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如果要是不给Student类设置Course泛型设置的话,该怎么写呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信