Aufgrund der Implementierung von Java-Generik kann man solchen Code nicht haben:
public class GenSet<E> {
private E a[];
public GenSet() {
a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation
}
}
Wie kann ich dies unter Beibehaltung der Typensicherheit umsetzen?
Ich habe in den Java-Foren eine Lösung gesehen, die folgendermaßen funktioniert:
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;
}
Aber ich verstehe wirklich nicht, was hier los ist.