根据java文档说:
Iterable<T>
允许将对象用作for-each语句的目标。
在java中,我们可以执行以下操作:
for (final <? super T> : T[]) {...}
在这种情况下,为什么java不能将T []类型的对象视为Iterable,因为以下崩溃时出现了不可比类型的编译错误:
final Iterable<T> anIterable = T[];
答案 0 :(得分:5)
Iterable
是一个对象。数组本身就是一个对象。这两件事是不相同的对象或相同的类型或相同的任何。他们之间字面没有任何关系 - 层次结构或其他 -
幸运的是,增强版 - for
声明is overloaded to accept both arrays and Iterable<T>
,所以你不必大惊小怪。