code: public static <E,T, V extends T> T inject(E[] self, @ClosureParams(value=FromString.class,options="E,E") Closure<V> closure) {
          return inject( (Object)self, closure ) ;
      }
docs: Iterates through the given array as with inject(Object[],initialValue,closure), but
  using the first element of the array as the initialValue, and then iterating
  the remaining elements of the array.
  
  @param self         an Object[]
  @param closure      a closure
  @return the result of the last closure call
  @throws NoSuchElementException if the array is empty.
  @see #inject(Object[], Object, Closure)
  @since 1.8.7