JAVA1.5 增强的for 循环的新特性

时间:2023-01-21 12:12:58

这是JAVA1.5 增强的for 循环的新特性。

private int isNullorBlank(String... args){

             int i = 1;

             for(String item : args){

                      if(term == null || item.trim().equals("")) {

                            break;

                      }

                     i++;

            }

            return i;

}

 所谓“增强的for 循环”,主要也是针对容器的。使用该项特性时,开发者可以将“利用iterator 遍历容器”的逻辑交给编译器来处理。

例如下列代码:

 void cancelAll(Collection c){

         for (Iterator i = c.iterator(); i.hasNext(); ) {

                    TimerTask tt = (TimerTask) i.nex  t();

                    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 c) {

 for (TimerTask task : c){

                  task.cancel();

}