Vererbung bei Generics

Kirby.exe

Top Contributor
Könnte mir jemand erklären was die folgende Klasse Signatur bedeutet und tut:
Java:
public class LinkedList <T extends Super> {}
 
Das bedeutet, wenn du eine LinkedList erstellen willst, muss der Generic-Parameter "T" mindestens vom Typ "Super" sein. In der Klasse kannst du alle Eigenschaften von "Super" benutzen. Um mal ein etwas greifbareres Beispiel zu nehmen:
Java:
public class Pocket<T extends Number> {
    T value;
    public int get() {
        return value.intValue();  // "value" ist mindestens vom Typ "Number"
    }
}
Pocket<Integer> p1 = new Pocket<Integer>();
Pocket<String> p2 = new Pocket<String>(); // compiler error
 
Das bedeutet, wenn du eine LinkedList erstellen willst, muss der Generic-Parameter "T" mindestens vom Typ "Super" sein. In der Klasse kannst du alle Eigenschaften von "Super" benutzen. Um mal ein etwas greifbareres Beispiel zu nehmen:
Java:
public class Pocket<T extends Number> {
    T value;
    public int get() {
        return value.intValue();  // "value" ist mindestens vom Typ "Number"
    }
}
Pocket<Integer> p1 = new Pocket<Integer>();
Pocket<String> p2 = new Pocket<String>(); // compiler error
Ahh ok verstehe 🙂 Danke für die Erklärung
 
direkt antworten nicht die ganze Antwort zitieren.
Das ist zwar richtig, _aber_ das verwendete Endgerät kann so langsam oder so eingestellt (*)sein, dass das Löschen der Antwort wesentlich mehr Zeit in Anspruch nimmt als das Zitat stehen zu lassen.
(*)Tablet mit Google Chrome: Zitattext löschen ist nur zeilenweise möglich (und markieren im Antwortfeld von java-forum.org gar nicht)
 

Zurück
Oben