晕初学哈!

解决方案 »

  1.   

    这是JDK1.5的新特性
    本来的
    void printAll(Collection c) {
           for (Iteratori = c.iterator(); i.hasNext(); ) {
                   Employee emp = (Employee)i.next();
                   System.out.println(emp.getName());
           }
    }
      现在,用增强的For语句实现相同方法:voidprintAll(Collection c) {
           for (Object o : c)
                   System.out.println((TimerTask)o).getName());

      

  2.   

    这是JAVA1.5 增强的for 循环
    不建议使用
      

  3.   

    增强的for 循环(enhanced for loop) 
    所谓“增强的for 循环”,主要也是针对容器的。使用该项特性时,开发者可以将“利用iterator 
    遍历容器”的逻辑交给编译器来处理。例如下列代码: 
    void cancelAll(Collection c) { 
    for (Iterator i = c.iterator(); i.hasNext(); ) { 
    TimerTask tt = (TimerTask) i.next(); 
    tt.cancel(); 


    可以用增强的for 循环改写为: 
    void cancelAll(Collection c) { 
    for (Object o : c) 
    ((TimerTask)o).close(); 

    编译器判断对象c 是一个Collection 子对象(即是容器)之后,就会允许使用增强的for 循环 
    形式,并自动取到c 的迭代器,自动遍历c 中的每个元素。 
    可以看到,上面的代码中仍然有一个强制类型转换(((TimerTask)o).close();)。实际上,这 
    项特性应该普遍地与泛型结合,以获得最大的利益。结合泛型之后,上述代码变成: 
    void cancelAll(Collection<TimerTask> c) { 
    for (TimerTask task : c) 
    task.cancel();