需求是这样的
用这个泛型限定 搞定学生中继承人的所有姓名 用ArrayList添加对象 并迭代出来
下面是我写的代码 关键地方都有注释
- import java.util.ArrayList;
- import java.util.Iterator;
- public class GenLimitDemo {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- ArrayList<Person> alp = new ArrayList<Person>();
- ArrayList<Stu> alu = new ArrayList<Stu>();
- alp.add(new Person("zhangsan",10));//加几个人
- alp.add(new Person("lisi",11));//加几个人
- alp.add(new Person("wangwu",12));//加几个人
- alu.add(new Stu("mark",20));//加几个学生
- alu.add(new Stu("jim",22));//加几个学生
- alu.add(new Stu("sam",27));//加几个学生
- printAl(alu);//调用打印方法
-
- }
- public static void printAl(ArrayList<? extends Person> al){
- // ArrayList<? extends Person> newal = new ArrayList<? extends Person>();
- for(Iterator<? extends Person> it = al.iterator();it.hasNext();){
- System.out.println(it.next().getName()+"..."+it.next().getAge());
-
- }
-
-
- }
- }
- class Person{//定义人类
- private String name;
- private int age;
- Person(String name,int age){
- this.name=name;
- this.age=age;
-
-
- }
- public String getName(){
-
- return this.name;
- }
- public int getAge(){
-
- return this.age;
- }
-
- }
- class Stu extends Person{//学生类
- Stu(String name, int age) {
- super(name, age);
-
- }
-
-
-
-
- }
复制代码 运行结果是第一个对象打印了 后面却出现 NoSuchElementException(没有这个元素异常)
然后 我注释掉我的方法调用之后发现没问题
请问大神我定义的迭代方法那 到底是错在哪了 该如何修改 拜谢{:soso_e136:}
PS:话说最近怎么都没技术分了{:soso_e109:}
|