Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

java Generics (? extends K)
Gehe zu Seite Zurück  1, 2
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> java Generics (? extends K)
 
Autor Nachricht
SuiTheKid
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 04.07.2008
Beiträge: 71

BeitragVerfasst am: 29 März 2010 - 23:22:19    Titel:

wahrscheinlich ist das er kleine punkt den ich nicht bei generics versteh.
könntest u das kurz erklären
Smutje
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 18.07.2008
Beiträge: 3004
Wohnort: Gießen

BeitragVerfasst am: 30 März 2010 - 01:10:32    Titel:

Ja, wie bereits oben beschrieben, ist bei Java Generizität zur Laufzeit nicht vorhanden und wird durch ein (sehr primitives) Vererbungssystem ersetzt, was ein wenig anders als die intuitive Art der Vererbung funktioniert:

Obwohl gilt, das String von Object erbt, gilt eben nicht, dass eine List<String> von List<Object> erbt, sondern, wie jede parametrisiert-generische Variante, von List (vom sog. "raw type").

Daher hast du bei "normalen" Methodenparametern dahingehend kein Problem, weil lookup(K key) eben für alle K und deren erbende Klassen aufgerufen werden kann, da jedes Erbe von K eben auch als K eintreten kann. Solltest du nun aber einen Methodenparameter haben, der vom parametrisiert-generischen Typ ist, funktioniert diese intuitive Art der Vererbung nicht mehr, da merge(Map<K, V> merge) nur für die aktuell gebundenen Werte von K und V gälte, und nicht für K' oder V' die in einer Vererbungshierarchie mit K respektive V stehen. Daher musst du nun den Umweg über die Einschränkung der Wildcard (? extends K, V) gehen, um auch anders typisierte Maps zuzulassen.
SuiTheKid
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 04.07.2008
Beiträge: 71

BeitragVerfasst am: 30 März 2010 - 10:00:27    Titel:

super , danke.
hab es edlich verstanden

MfG
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> java Generics (? extends K)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum