1.
Object obj=it.next();
Person p=(Person)obj;
sop(p.getName());
//这里为什么不能写成:sop(it.next().getName()),非得加上前面两句?老毕说的是要求类型转换,因为建立迭代器时,不知道里面对象的类型.
但是,在al.add(new Person("lisi",30));时,不是已经知道al里放的是Person()类型数据了吗?
首先楼主应该明白迭代器的含义,当创建一个迭代器时,
你可以把它当成一个容器,里面是什么都没有的,
实则是跟ArrayList是两回事,所以迭代器是不知道里面是什么类型的对象的.
所以你要把什么放进去就要注明是什么类型的对象,如果直接调用sop(it.next().getName()).就是没标明是Person类型的对象,所以是不对的.
2.
//那么对于这段代码:为什么有可以了呢? 希望能通俗的讲解下?
至于第二个 你所传入的是字符串类型,Object类中本来就有一个方法是输出时自动调用的toString(),所以可以不写. |