A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 短板 中级黑马   /  2015-5-7 16:28  /  590 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.* ;
class GenericDemo191b
{
        public static void main(String[] args)
        {
                ArrayList<Person> al = new ArrayList<Person>();
                al.add(new Person("abc1"));
                al.add(new Person("abc2"));
                al.add(new Person("abc4"));

                ArrayList<Student> al1 = new ArrayList<Student>();
                al1.add(new Person("a-1"));
                al1.add(new Person("a-2"));
                al1.add(new Person("a-4"));

                print(al);
                print(al1);
       
                public static void print(ArrayList<? extends Person> al)
                {
                        for (Iterator<? extends Person> it = al.iterator();it.hasNext() ; )
                        {
                                System.out.println(it.next().getName());
                        }
                }
                       
        }
}
class Person
{
        private String name ;
        Person(String name )
        {
                this.name = name ;
        }
        public String getName()
        {
                return name ;
        }
}
class Student extends Person
{
        Student(String name )
        {
                super(name) ;
        }
}

4 个回复

倒序浏览
cmd运行 一直说19行错误   public static void print(ArrayList<? extends Person> al)

但是我找不到 求那位大神讲解下
回复 使用道具 举报
不能在函数内再定义函数。你在主函数内定义了print方法,把那个方法拿出来试一下,应该就好了。

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
第二个集合定义了泛型 Student但是往里面添加Person这个也要报错的。
回复 使用道具 举报
方法是平级的额。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马