java - 数组无法隐式转换为可迭代对象

标签 java arrays foreach iterable

根据 java 文档所述:

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

在java中我们可以做以下事情:

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

在这种情况下,为什么 java 不能将 T[] 类型的对象视为可迭代对象,因为以下代码会因不兼容类型编译错误而崩溃:

final Iterable<T> anIterable = T[];

最佳答案

Iterable本身就是一个对象。数组本身就是一个对象。这两个事物不是相同的对象、相同的类型或相同的任何。他们之间实际上没有任何关系——无论是等级关系还是其他关系。

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

关于java - 数组无法隐式转换为可迭代对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49221402/

相关文章:

javascript - 使用函数从数组中查找最小值和最大值

javascript - Angular js foreach只返回数组中的最后一项

php - 按百分比分割网站流量

java - 未找到 JUnit 文件

java - 关于 Copyable getObjectCopy(),如何证明为什么未经检查的类型转换没问题

javascript - 访问多维 javascript 对象中的字符串子元素

arrays - 附加到数组后我无法修改该项目

php - 用 foreach 增加 DIV 容器

java - 对 ArrayList<MyInterface> 进行排序

java - 用java在手机上发送阿拉伯语短信