Generisches Array
-
Hallo, ich habe folgende generische Methode für einen Sortieralgorithmus:
public <T extends Comparable<? super T>> void sort(T[] array) { // ... } Integer[] testcase = new Integer[]{12,...,22}; myinstance.sort(testcase);
Darin möchte ich Array von Ts erstellen:
// klar: geht nicht T[] temp = new T[size]; // Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable; T[] temp = (T[]) new Object[size]; // selbe Exception; T[] temp = (T[]) Array.newInstance(array.getClass(), size);
Wie mach ich das?
-
public <T extends Comparable<? super T>> void sort(T[] array) { //nothing to sort? leave the method if(array.length == 0) return; T[] temp = (T[]) Array.newInstance(array[0].getClass(), array.length); }
müsste gehen