本帖最后由 HM朱蛟 于 2013-4-5 06:01 编辑
该代码报错,说找不到getName方法。
C:\Documents and Settings\Administrator\桌面\BH-temp>javac GenericXD.java
GenericXD.java:47: 找不到符号
符号: 方法 getName()
位置: 类 java.lang.Object
System.out.println(it.next().getName());
^
1 错误- import java.util.*;
- class Demo
- {
- public static void main(String[] args)
- {
- ArrayList<Person> al = new ArrayList<Person>();
- al.add(new Person("NAME--01"));
- al.add(new Person("NAME--02"));
- al.add(new Person("NAME--03"));
-
- ArrayList<Student> al1 = new ArrayList<Student>();
- al1.add(new Student("NAME-stu--04"));
- al1.add(new Student("NAME-stu--05"));
- al1.add(new Student("NAME-stu--06"));
-
- print(al1);//传入点 Student ArrayList<Person> al = new ArrayList<Student>(); //::Error::若成立,则可以存工人
- }
- public static void print(ArrayList<? super Student> al)//这句为何报错? 不是说支持Student和其父类的么?
- //public static void print(ArrayList<? extends Person> al)//泛型限定,上限,支持Person和Person的子类
- {
- Iterator<? super Student> it = al.iterator();
-
- while(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);
- }
- }
复制代码 |