title: Why is an array not assignable to Iterable?
body: <p>with Java5 we can write:</p>
  
  <pre><code>Foo[] foos = ...
  for (Foo foo : foos) 
  </code></pre>
  
  <p>or just using an Iterable in the for loop. This is very handy. </p>
  
  <p>However you can't write a generic method for iterable like this:</p>
  
  <pre><code>public void bar(Iterable&lt;Foo&gt; foos) { .. }
  </code></pre>
  
  <p>and calling it with an array since it is not an Iterable:</p>
  
  <pre><code>Foo[] foos = { .. };
  bar(foos);  // compile time error 
  </code></pre>
  
  <p>I'm wondering about the reasons behind this design decision.</p>