code: @SuppressWarnings("unchecked")
      public static <T,E> List<T> collectMany(E[] self, @ClosureParams(FirstParam.Component.class) Closure<Collection<? extends T>> projection) {
          return collectMany((Iterable<E>)toList(self), projection);
      }
docs: Projects each item from a source array to a collection and concatenates (flattens) the resulting collections into a single list.
  <p>
  <pre class="groovyTestCase">
  def nums = [1, 2, 3, 4, 5, 6] as Object[]
  def squaresAndCubesOfEvens = nums.collectMany{ it % 2 ? [] : [it**2, it**3] }
  assert squaresAndCubesOfEvens == [4, 8, 16, 64, 36, 216]
  </pre>
  
  @param self       an array
  @param projection a projecting Closure returning a collection of items
  @return a list created from the projected collections concatenated (flattened) together
  @see #sum(Object[], groovy.lang.Closure)
  @since 1.8.1