Comparable
-
Hi,
ein paar kurze Fragen zu Comparable:
Wenn ich nach dem Interface google, krieg ich 2 API Dokus:
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html
und
http://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlBeide heißen java.util.Comparable, aber einmal ist es einfach nur java.util.Comparable und ein anderes mal java.util.Comparable<T>. Gibt es nur noch das generische Comparable<T>, wenn man ein neues Java SDK installiert? Oder existieren die beiden parallel und man kann beide benutzen?
Und wenn ich eine Klasse C habe, die Comparable<T> implementieren soll, muss dann die Klasse selber generisch sein (also C<T>)?
Falls nein, kann mir jemand ein kurzes Minibeispiel zeigen, wie eine nicht generische Klasse Comparable<T> implementieren kann?Danke!
-
class Myclass implements Comparable<MyClass> { // implement here }
MfG SideWinder
-
Das beantwortet aber nur eine meiner Fragen.
-
compFrage schrieb:
Wenn ich nach dem Interface google, krieg ich 2 API Dokus:
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html
und
http://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlOmg, das sind 2 verschiedene Versionen, steht doch auch jeweils im Titel, oben auf der Seite und sogar in der URL.
-
gastantwort schrieb:
compFrage schrieb:
Wenn ich nach dem Interface google, krieg ich 2 API Dokus:
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html
und
http://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlOmg, das sind 2 verschiedene Versionen, steht doch auch jeweils im Titel, oben auf der Seite und sogar in der URL.
Nein wirklich? Bist ja ein ganz Heller.
Dass hab ich bereits im Anfangsposting gesagt. Aber es sind die selben TYPEN. Beide heissen Comparable und sind im selben Package. Gibt es nun beide parallel?
-
jjjjjjjj schrieb:
gastantwort schrieb:
compFrage schrieb:
Wenn ich nach dem Interface google, krieg ich 2 API Dokus:
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html
und
http://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlOmg, das sind 2 verschiedene Versionen, steht doch auch jeweils im Titel, oben auf der Seite und sogar in der URL.
Nein wirklich? Bist ja ein ganz Heller.
Dass hab ich bereits im Anfangsposting gesagt. Aber es sind die selben TYPEN. Beide heissen Comparable und sind im selben Package. Gibt es nun beide parallel?die frage ist etwas verwirrend
die beiden versionen beziehen sich auf 2 verschiedene jdks. soweit klar. also existiert natürlich auch nur die jeweilige version im jeweiligen jdk ohne die andere..
unabhängig davon ist die 6er version "abwärtskompatibel". das heißt die generics sind nicht zwingend notwendig.
das beispiel von SideWinder geht also auch ohne generics.nochmal beide versionen untereinander:
public class Myclass implements Comparable { @Override public int compareTo(Object o) { // whatever } } public class Myclass implements Comparable<Myclass> { @Override public int compareTo(Myclass o) { // whatever } }
-
@jre: Danke!
Wieso liegen die eigentlich im selben Paket? (beide java.util) Hätte es nicht Sinn gemacht, die Generics in ein neues Paket zu legen? (sowas wie java.generics.util)?
-
Nein, das hätte keinen Sinn gemacht. Welchen Vorteil soll das bringen?
-
jjjjjjjjjj schrieb:
@jre: Danke!
Wieso liegen die eigentlich im selben Paket? (beide java.util) Hätte es nicht Sinn gemacht, die Generics in ein neues Paket zu legen? (sowas wie java.generics.util)?
ES IST DAS SELBE INTERFACE, SELBE DATEI, ANDERE VERSION !!
-
...oder länger erklärt: Man müsste sonst überall wo man derzeit ein Comparable übergeben kann eine weitere Methode erstellen in der das generische Comparable übergeben werden könnte. Das wäre ja ein riesen Aufwand.
MfG SideWinder