为什么实现Iterator接口允许对象成为java中“foreach”语句的目标?
我的意思是for-each和java中的Iterable
接口之间的关系。
for(Object:Iterable<T>)
{
//code here
}
答案 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提到的链接?那里给出了一个精彩的解释。