| 
 
| 本帖最后由 huyang936 于 2015-2-1 11:38 编辑 
 说说我的理解吧:? super Student 即:此处 ? 可以是Student类型或是Student类型的父类,那么问题来了,Object也是Student类的父类呀!!!那么.getName()方法就无法调用。但问题又来了,如果是这样的话,那么泛型限定的下限局限性也太大了,直接到了Object级别,自此非Object类的方法统统不能用。。。复制代码import java.util.*;
class Fan4Demo
{
        public static void main(String[] args)
        {
                ArrayList<Person> al = new ArrayList<Person>();
                al.add(new Person("Lisi1",1));
                al.add(new Person("Lisi2",2));
                al.add(new Person("Lisi3",3));
                print(al);
                ArrayList<Student> al2 = new ArrayList<Student>();
                al2.add(new Student("XiaoMing1",1));
                al2.add(new Student("XiaoMing2",2));
                al2.add(new Student("XiaoMing3",3));
                print(al2);
        }
        public static void print(ArrayList<? super Student> al)        //传说中的泛型限定[下限]
        {
                Iterator<? super Student> it = al.iterator();
                while(it.hasNext())
                {
                        System.out.println(it.next().getName());//此处报错
                }
        }
}
class Person
{
        private String name;
        private int age;
        Person(String name,int age)
        {
                this.name = name;
                this.age = age;
        }
        public String getName()
        {
                return name;
        }
        public int getAge()
        {
                return age;
        }
}
class Student extends Person
{
        public Student(String name,int age)
        {
                super(name,age);
        }
这个只是我个人的理解不知道对不对,求大神再此不吝赐教解释下,谢谢!!!
 | 
 |