Also ich muss ein Generisches Array erzeugen und auf dieses dann verschiedene Methoden ausfuehren.
Beim Ausfuehren von der Methode sort in der HelpRing Klasse erhalte ich aber immer nur die ClassCastException weiss vlt jemand wie man das Problem loesen koennte?
Also in der main Methode wird der Ring (INTEGER) erzeugt durch den Konstruktor in der Klasse Ring.
Dann wuerde ich gerne das Array ri.array an die Methode sort in der Klasse HelpRing uebergeben funktioniert leider nicht????
PS: Die Klassen sind nicht volstaendig gepostet...
Beim Ausfuehren von der Methode sort in der HelpRing Klasse erhalte ich aber immer nur die ClassCastException weiss vlt jemand wie man das Problem loesen koennte?
Also in der main Methode wird der Ring (INTEGER) erzeugt durch den Konstruktor in der Klasse Ring.
Dann wuerde ich gerne das Array ri.array an die Methode sort in der Klasse HelpRing uebergeben funktioniert leider nicht????
PS: Die Klassen sind nicht volstaendig gepostet...
Java:
public static void main(String[] args) {
Ring<Integer> ri = new Ring<Integer>(10);
int i = 0;
while (ri.size() < ri.capacity()) {
ri.add(i++);
}
HelpRing.sort(ri.array);
}
public class Ring<T> {
protected T[] array;
protected int size;
protected T current;
protected int current_pos;
@SuppressWarnings("unchecked")
public Ring(int cap) {
try {
if (cap<0) throw new IllegalArgumentException();
else {
this.array = (T[]) new Object[cap];
this.size = 0;
this.current = null;
this.current_pos = 0;
}
} catch (final IllegalArgumentException iae) {
System.out.println("The capacity can't be negativ, no queue created!");
}
}
}
public class HelpRing {
public static <T extends Comparable<? super T>> void sort(T[] array) {
for (int i=1; i<array.length; i++) {
for (int j=i; j>0 && (array[j].compareTo(array[j-1])<0); j--) {
T tmp = array[i]; array[i] = array[j]; array[j] = tmp;
}
}
}
}
Zuletzt bearbeitet von einem Moderator: