В связи с реализацией Java-дженериков вы не можете иметь такой код:
public class GenSet<E> {
private E a[];
public GenSet() {
a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation
}
}
Как я могу реализовать это при сохранении безопасности типов?
Я видел решение на форумах Java, которое выглядит следующим образом:
import java.lang.reflect.Array;
class Stack<T> {
public Stack(Class<T> clazz, int capacity) {
array = (T[])Array.newInstance(clazz, capacity);
}
private final T[] array;
}
Но я действительно не понимаю, что происходит.