理解Iterator接口和“foreach”语句之间的关系

时间:2014-10-27 14:56:39

标签: java foreach

为什么实现Iterator接口允许对象成为java中“foreach”语句的目标?

我的意思是for-each和java中的Iterable接口之间的关系。

for(Object:Iterable<T>)
{
    //code here
}

3 个答案:

答案 0 :(得分:1)

因为这是在jls-14.14.2中定义增强的for语句的方式。

具体做法是:

  

增强的for语句相当于表单的基本for语句:

for (I #i = Expression.iterator(); #i.hasNext(); ) {
    VariableModifiersopt TargetType Identifier =
        (TargetType) #i.next();
    Statement
}

答案 1 :(得分:0)

这是基于语言规范的JVM实现。例如,布尔值是if语句的目标。

答案 2 :(得分:0)

您使用的词语实现Iterator接口允许对象成为“foreach”语句声音的目标,就像您已经阅读Java Doc - Interface Iterable一样。

那么为什么你没有按照The For-Each Loop提到的链接?那里给出了一个精彩的解释。