Java语言新特性与库功能详解
1. 增强for循环
1.1 传统for循环使用迭代器的问题
在传统的Java编程中,使用for循环结合迭代器遍历集合时,代码容易出错。例如:
for(Iterator iter = intArray.iterator(); iter.hasNext(); ) {
Integer intObject = (Integer)iter.next();
// ... more statements to use intObject ...
}
这段代码的问题在于for循环缺少更新子句,迭代器前进的代码被移到了循环体中,因为它还需要返回下一个对象。
1.2 增强for循环的优势
增强for循环提供了一种更简洁的方式来处理迭代器。示例代码如下:
for(Integer intObject : intArray) {
// ... same statements as above go here ...
}
这种代码更清晰易读,消除了之前构造中引入错误的可能性。如果与泛型集合结合使用,在编译时会检查对象的类型与集合内的类型是否匹配。
1.3 编译器对增强for循环的处理
支持这种新的for循环只需要对编译器进行更改。编译器生成的代码与传统方式编写的代码并无不同。例如,编译器可能会将上述代码转换为: