Wie heisst dieses Java Konstrukt
-
Kann mir mal einer erklaeren was dieses Java Konstrukt hier ist. Vor dem Rueckgabewert void steht noch etwas in spitzen Klammern. Es hat mir sicherheit etwas mit generics zu tun.
Aber wie nennt man das und was ist das hier noch<? super E>
<E extends Comparable<? super E>> void shellSort(E[] sammlung, int[] schrittweiten) {
-
Hab mich jetzt mal informiert. Dabei bin ich auf die Stichworte CoVarianz und ContraVarianz gestossen. Jetzt programmier ich schon solange in Java und hoer das jetzt zum ersten Mal.
-
Gibt's ja auch erst seit 1.5 (2005).
-
SG1 schrieb:
Gibt's ja auch erst seit 1.5 (2005).
Du meinst das bestimmt ironisch. Da bin ich mal 12 Jahre zu spaet dran *gg*
Vielleicht kann mal einer paar Worte dazusagen.Wenn ich das richtig verstehe, beschreibt das Konstrukt vor dem void den Generic E etwas genauer.
<E extends Comparable<? super E>> void
wenn ich fuer E einen Integer ubergebe, dann muss Integer von Comparable ableiten was es wohl auch tut. Und Comparable ist wohl kontravariant wegen dem ? super E .
-
computernerds schrieb:
wenn ich fuer E einen Integer ubergebe, dann muss Integer von Comparable ableiten was es wohl auch tut.
Genau!
-
wozu dann noch
Comparable<? super E>
-
Comparable ist ja wieder ein Generic. Der Typ-Parameter beschreibt in diesem Fall, zu was man vergleichbar ist. Also E soll vergleichbar zu E sein - oder zu einem Supertyp von E.