相关疑难解决方法(0)

为什么数组不能分配给Iterable?

用Java5我们可以写:

Foo[] foos = ...
for (Foo foo : foos) 
Run Code Online (Sandbox Code Playgroud)

或者只是在for循环中使用Iterable.这非常方便.

但是你不能像这样为iterable编写泛型方法:

public void bar(Iterable<Foo> foos) { .. }
Run Code Online (Sandbox Code Playgroud)

并使用数组调用它,因为它不是Iterable:

Foo[] foos = { .. };
bar(foos);  // compile time error 
Run Code Online (Sandbox Code Playgroud)

我想知道这个设计决定背后的原因.

java language-design

176
推荐指数
5
解决办法
5万
查看次数

标签 统计

java ×1

language-design ×1