我知道增强的for循环(因为java 1.5)可用于迭代实现Iterator接口的类类型集合。然而,它也可以用于迭代基本类型的数组,例如int,boolean,... 所以我的逻辑结论是,由于自动装箱和拆箱,例如,原始整数被包装在它们的引用类型中,然后轮流实现Iteratable。
但是,当我查阅java.lang.Integer
的文档时,没有提到任何可以实现或扩展Iterable
接口的超类或接口的扩展或实现。如果没有实现Iterable
接口,增强的for循环如何知道如何循环原始类型?
答案 0 :(得分:6)
如果 Expression 的类型是
Iterable
的子类型,则翻译如下。(...指定循环
T[]
的算法...)否则, Expression 必须具有数组类型
T[]
。(...指定循环遍历
strings.map!{|string| string.gsub(/\P{ASCII}/,'')}
数组的算法...)