为什么数组不能分配给可迭代?
2022-08-31 06:25:07
使用Java5,我们可以写:
Foo[] foos = ...
for (Foo foo : foos)
或者只是在 for 循环中使用可迭代。这非常方便。
但是,您不能像这样为可迭代编写泛型方法:
public void bar(Iterable<Foo> foos) { .. }
并用数组调用它,因为它不是可迭代的:
Foo[] foos = { .. };
bar(foos); // compile time error
我想知道这个设计决策背后的原因。