Generics und Casting eines Objekts

Diskutiere Generics und Casting eines Objekts im Java Basics - Anfänger-Themen Forum; Hey, warum muss hier gecastet werden? class Mannschaft<T extends Spieler>{ Collection<T> player = new ArrayList(); void...

  1. needInput
    needInput Neues Mitglied
    Hey,
    warum muss hier gecastet werden?
    Code (Java):
    class Mannschaft<T extends Spieler>{
        Collection<T> player = new ArrayList();
       
        void aufnehmen(Spieler spieler) {
         this.player.add((T)spieler); //hier
    }
    }
    Wir schränken doch zuvor den generischen Bereich auf alles unter Spieler ist ein.
    Deswegen wird doch das T intern durch einen Spieler ersetzt.
    Ich verstehe einfach den Cast Grund nicht.
     
  2. Vielleicht hilft dir dieser Kurs hier weiter.
  3. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Du schränkst es auf eine bestimmte Klasse unter Spieler ein, nicht auf alles unter Spieler. Jedes T muss ein Spieler sein, aber nicht jeder Spieler muss ein T sein.


    Stell dir vor, es gibt zwei Unterklassen von Spieler: HandballSpieler und FußballSpieler.
    Mannschaft kannst du dann als Mannschaft<HandballSpieler> deklarieren, T wäre dann HandballSpieler.

    Daran siehst du auch, dass das casten an der Stelle fehlerhaft ist (auch wenn es nicht zwingend einen Compilezeit- oder Laufzeitfehler wirft): Deiner HandballMannschaft kannst du damit FußballSpieler hinzufügen.
     
    needInput, httpdigest und mihe7 gefällt das.
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Generics und Casting eines Objekts - Ähnliche Themen

Generics
Generics im Forum Java Basics - Anfänger-Themen
Vererbung/Interfaces/Generics
Vererbung/Interfaces/Generics im Forum Java Basics - Anfänger-Themen
Generics - Typ zurückbekommen
Generics - Typ zurückbekommen im Forum Java Basics - Anfänger-Themen
Generics von Profis leicht erklärt
Generics von Profis leicht erklärt im Forum Java Basics - Anfänger-Themen
Mit Generics arbeiten - Übungsaufgabe
Mit Generics arbeiten - Übungsaufgabe im Forum Allgemeine Java-Themen
Thema: Generics und Casting eines Objekts