@SuppressWarnings("unchecked") @Override public E[] supply(Dependency<? super E[]> dependency, Injector injector) { E[] res = (E[]) Array.newInstance(arrayType.getComponentType(), elements.length); int i = 0; final Dependency<E> elementDependency = (Dependency<E>) dependency.typed(Type.raw(arrayType).elementType()); for (Supplier<? extends E> e : elements) { res[i++] = e.supply(elementDependency, injector); } return res; }