问答详情
源自:4-9 学生选课---应用泛型管理课程 Ⅰ

集合与泛型

coursesToSelect是集合,将string添加入集合,会自动忽略类型,当作object处理,那为什么添加一个字符串的时候会有ClassToSelect异常呢?

如果说coursesToSelect已经规定了可存放的类型,是泛型的话,那泛型是不需要进行类型转换的呀?

提问者:16k闪存大脑3954634 2017-09-01 16:17

个回答

  • 柠檬口味冰红茶
    2017-09-28 15:18:00

    添加字符串进去的时候是没问题的,只是后来在取出集合中的元素时,需要将集合中的元素强制类型转换为course,这个时候原来的字符串虽然现在也是Object类,但是没办法被转换成course,所以才报错

  • qq_我想请你喝维他_0
    2017-09-01 19:03:13

    这个异常是在循环遍历的时候抛出的,添加进去是没有问题的。

    规定泛型的话,规定的是<Course>的话,那List里存放的就是Course类型的引用不是Object了,取出来的时候也是Course类型的引用,不需要强制转换了。。

    当然规定泛型的话,规定的是<Course>的话,无法add其他类型的对象,编译的时候就会出错