黑马程序员技术交流社区

标题: 泛型上限疑问 [打印本页]

作者: 一叶障目    时间: 2014-11-16 16:05
标题: 泛型上限疑问
本帖最后由 一叶障目 于 2014-11-16 16:07 编辑

public static void demo(List<? extends Person>,Person p){
       list.add(p);//编译出现问题,这是为什么}
Person 是一个Person类;

作者: 爱学习的小明    时间: 2014-11-16 17:27
你写的代码List没变量名
作者: wf111sxwf    时间: 2014-11-16 21:00
没有写变量名。你函数里的list就不存在
作者: wf111sxwf    时间: 2014-11-16 21:01
函数没有形式参数
作者: Fightingforever    时间: 2014-11-16 21:10
wf111sxwf 发表于 2014-11-16 21:01
函数没有形式参数

楼主,demo函数中,你只定义了第一个参数的类型,即List<? extends Person>而没有参数的名称,这里第一个参数的意思List类型的变量,该类型的变量可以存储Person类型或者Person类型的子类型,是泛型限定中的上限限定,这里可以改为
  1. public static void demo(List<? extends Person> list,Person p){
  2.        list.add(p);}
复制代码

作者: 一叶障目    时间: 2014-11-16 21:51
爱学习的小明 发表于 2014-11-16 17:27
你写的代码List没变量名

呵呵,疏忽啦,原问题是这样的
public static void demo(List<? extends Person> list,Person p){
       list.add(p);//编译出现问题,这是为什么
}
不是参数的问题。。。
作者: 一叶障目    时间: 2014-11-16 21:53
Fightingforever 发表于 2014-11-16 21:10
楼主,demo函数中,你只定义了第一个参数的类型,即List

呵呵,疏忽啦,原问题是这样的
public static void demo(List<? extends Person> list,Person p){
       list.add(p);//编译出现问题,这是为什么
}
不是参数的问题。。。
作者: 一叶障目    时间: 2014-11-16 21:54
Fightingforever 发表于 2014-11-16 21:10
楼主,demo函数中,你只定义了第一个参数的类型,即List

呵呵,疏忽啦,原问题是这样的
public static void demo(List<? extends Person> list,Person p){
       list.add(p);//编译出现问题,这是为什么
}
不是参数的问题。。。
作者: 一叶障目    时间: 2014-11-16 22:05
Fightingforever 发表于 2014-11-16 21:10
楼主,demo函数中,你只定义了第一个参数的类型,即List

呵呵,疏忽啦,原问题是这样的
public static void demo(List<? extends Person> list,Person p){
       list.add(p);//编译出现问题,这是为什么
}
不是参数的问题。。。




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