黑马程序员技术交流社区

标题: 发现老毕第十五天第12个视频中有点小问题 [打印本页]

作者: 聪明叉    时间: 2014-11-24 13:09
标题: 发现老毕第十五天第12个视频中有点小问题
  1. public static void printAl(ArrayList<? extends Person> al)
  2.         {
  3.                 Iterator<? extends Person> it = al.iterator();

  4.                 while(it.hasNext())
  5.                         System.out.println(it.next().getName());//上面泛型改成<? super Student>后,不能调用getName方法
复制代码
这里这段代码,泛型使用<? extends Person>,老毕说使用<? super Student>是一样的,我发现使用super Student之后无法使用Person、Student类中的特有方法。
<? super Student>的意思是可以传入Student及其父类,结果导致传入的是Object类
需要对其类型强转后才能调用特有方法
  1. while(it.hasNext())
  2.                 {
  3.                         Person p = (Person)it.next();
  4.                         System.out.println(p.getName());
  5.                 }
复制代码




作者: Tae丶Yeon    时间: 2014-11-24 15:50
学习了~
作者: 高昌德    时间: 2014-11-24 17:08
学习了,,,,,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2