无法将数组隐式转换为可迭代的

时间:2018-03-11 15:00:56

标签: java arrays foreach iterable

根据java文档说:

Iterable<T>允许将对象用作for-each语句的目标。

在java中,我们可以执行以下操作:

for (final <? super T> : T[]) {...}

在这种情况下,为什么java不能将T []类型的对象视为Iterable,因为以下崩溃时出现了不可比类型的编译错误:

final Iterable<T> anIterable = T[];

1 个答案:

答案 0 :(得分:5)

Iterable是一个对象。数组本身就是一个对象。这两件事是相同的对象或相同的类型或相同的任何。他们之间字面没有任何关系 - 层次结构或其他 -

幸运的是,增强版 - for声明is overloaded to accept both arrays and Iterable<T>,所以你不必大惊小怪。