Dwie metody tworzenia tablic ogólnych

Nauczyłem się stosować dwie metody tworzenia tablic ogólnych.

Jeden jest

@SuppressWarnings("unchecked")
static <T> T[] array1(final Class<T> elementType, final int size) {

    return (T[]) Array.newInstance(elementType, size);
}

A drugi to

static <T> T[] array2(final Class<T[]> arrayType, final int size) {

    return arrayType.cast(Array.newInstance(arrayType.getComponentType(), size));
}

Co jest lepsze? Czy są takie same (wewnętrznie)? Czy jakikolwiek przypadek rzeczywiście się myli?

questionAnswers(3)

yourAnswerToTheQuestion