ジェネリック配列を作成するための次の 2 つの方法を学びました。
一つは
@SuppressWarnings("unchecked")
static <T> T[] array1(final Class<T> elementType, final int size) {
return (T[]) Array.newInstance(elementType, size);
}
そしてもう一つは
static <T> T[] array2(final Class<T[]> arrayType, final int size) {
return arrayType.cast(Array.newInstance(arrayType.getComponentType(), size));
}
どちらが良いですか?それらは(内部的に)同じですか?実際に間違っているケースはありますか?