Programmieren_2/10-termin.md

1.6 KiB

Termin 10


Fragen


Links

https://git.haw-hamburg.de/pm2-tutorium


Plan für heute

Fragestunde


Fragen

  • Was ist die Lösung der Feinschmeckeraufgabe aus der Generics Vorlesung? "Wie mache ich aus einem Sec<Object> das nur String enthält ein Set<String>?"
  • Warum ist in der Referenzlösung eine Map in der Wertklassenaufgabe?
  • Wie wende ich die Regel "Producer extends consumer super (PECS)" an?

Feinschmeckeraufgabe


Map in Wertklasse


PECS

"Producer extends consumer super" beschreibt das Benutzen von extends und super bei Collections als generische Parameter.


Wenn man in einer Methode nur Sachen aus einer Collection entnimmt dann ist die Collection für uns ein Producer und wir benutzen extends.

public void listeAuf(Collection<? extends Thing> coll) {
   // Sachen aus der Collection herrausnehmen
}

Wenn man nur Sachen in die Collection einfügt dann ist die Collection für uns ein Consumer und wir benutzen super.

public void packeRein(Collection<? super Thing> coll) {
   // Sachen in die Collection einfügen
}

Will man beides machen (einfügen und entnehmen) dann muss ein fester Typ genutzt werden.