static <T> VecFactory<T[]> ofObjectVec(
		final Comparator<? super T> comparator,
		final ElementDistance<T[]> distance,
		final List<Optimize> optimizes
	) {
		return new GeneralObjectVecFactory<>(comparator, distance, optimizes);
	}
Create a new factory for {@code T[]} vectors. Additionally, you can
specify the optimization direction (maximization or minimization) for
each dimension. The dimensionality of the created vectors must be exactly
the same as the given length of the given {@code optimizes}. If the
lengths don't match, an {@link IllegalArgumentException} is thrown.

@see #ofObjectVec(Comparator, ElementDistance, Optimize...)

@param comparator the array element comparator
@param distance the element distance function
@param optimizes the optimization <em>direction</em> for each dimension
@param <T> the array element type
@return  a new factory for {@code T[]} vectors
@throws NullPointerException if one of the arguments is {@code null}
@throws IllegalArgumentException if the {@code optimizes} length is zero
jenetics.ext/src/main/java/io/jenetics/ext/moea/VecFactory.java