M
Markus_
Gast
Hallo,
ich habe folgenden Bubblesort geschrieben:
Dabei bekomme ich, bezogen auf Zeile 8 folgende Fehlermeldung:
Note: SortAlgorithms.java uses unchecked or unsafe operations.
Mir stellt sich die Frage: Kann ich das irgendwie umgehen? (Und ich meine jetzt nicht mit supress warning)
Wenn ich das Problem richtig verstanden habe, kann ja folgendes passieren: Ich übergebe ein typisiertes Comparable, dass ggf. eingeschränkt ist. Nun erstelle ich mit Comparable temp ein neues Comparable, was nicht typisiert ist. Und dieses weise ist dann c zu. Wenn ich dann nun im nächsten Durchlauf ggf. ein c habe, was nicht typisiert ist, und ein typisiertes c[i+1], und dann c.compareTo(c[i+1]) habe, gibts ggf. Probleme, welche der Compiler nicht abtesten kann. Daher die Warnung.
Stellt sich die Frage, wie programmiere ich richtig? Idee wäre z.B. ein Comparable<? extends Comparable> zu benutzen. Aber irgendwie sinnlos doppel gemopellt :autsch: und funktioniert sinnigerweise auch nicht.
Also, wenn jemand eine Idee hat, nur her damit
Gruß, Danke
Markus
ich habe folgenden Bubblesort geschrieben:
Code:
public class SortAlgorithms {
public static void bubbleSort(Comparable[] c) {
boolean change = true;
while (change) {
change = false;
for (int i = 0; i < c.length - 1; i++) {
if (c[i].compareTo(c[i + 1]) > 0) {
Comparable temp = c[i + 1];
c[i + 1] = c[i];
c[i] = temp;
change = true;
}
}
}
}
}
Note: SortAlgorithms.java uses unchecked or unsafe operations.
Mir stellt sich die Frage: Kann ich das irgendwie umgehen? (Und ich meine jetzt nicht mit supress warning)
Wenn ich das Problem richtig verstanden habe, kann ja folgendes passieren: Ich übergebe ein typisiertes Comparable, dass ggf. eingeschränkt ist. Nun erstelle ich mit Comparable temp ein neues Comparable, was nicht typisiert ist. Und dieses weise ist dann c zu. Wenn ich dann nun im nächsten Durchlauf ggf. ein c habe, was nicht typisiert ist, und ein typisiertes c[i+1], und dann c.compareTo(c[i+1]) habe, gibts ggf. Probleme, welche der Compiler nicht abtesten kann. Daher die Warnung.
Stellt sich die Frage, wie programmiere ich richtig? Idee wäre z.B. ein Comparable<? extends Comparable> zu benutzen. Aber irgendwie sinnlos doppel gemopellt :autsch: und funktioniert sinnigerweise auch nicht.
Also, wenn jemand eine Idee hat, nur her damit
Gruß, Danke
Markus