Guden Tag liebe Community,
meine Kommilitionen und ich haben ein Problem. Für uns sogar ein sehr großes.
In den Übungen werden im Moment Generics geprüft.
Leider verstehen wir im Moment nicht wie wir diese auf unsere Übung anwenden.
Das Grund Verständnis ist vorhanden also bitte keine externen Links zu tollen Büchern oder Tuts .
Uns fehlt ein entscheidender Gedanke zur Lösung.
Nun gut auf zur Problemstellung:
Wir haben eine Klasse Personen, Gruppe und ein Interface ContactData.
Personen:
-firstname
-lastname
-title
Gruppe:
-name
-liste(Diese kann Gruppen und Personen enthalten)
Diese Liste soll auch sortiert sein. Das heißt zu erst Personen diese sind nochmal sortiert durch nachname, vorname, titellänge. Danach kommen die Gruppen.
Jede Person speichert ein Objekt mit seinem Kontakt-Daten(ContactData) von denen nur die Schnittstelle(Interface) festgelegt ist: Zur Ausgabe können die Textzeilen des Kontakts mit den Methoden int getLineCount() und String getLine(int index) abgefragt werden. Der Versand einer Nachicht an den Kontakt geschieht über die Methode void sendMessage(String msg).
Damit die Kontaktverwaltung typsicher ist und nicht beliebige verschiedene Kontaktobjekte in einer Liste gemischt werden können wird der konkrete Typ der Kontaktobjekte als generischer Parameter bei den personen und Gruppen gesetzt. Der konkrete generische Typ muss dabei mindestens Contact Data sein, da sonst die Ausgabe nicht möglich ist.
So was wir bis jetzt haben:
(sind nur Code ausschnitte)
(Das gleiche mit Group)
ContactData beinhaltet die Methoden getLine usw.
Außerdem haben wir eine Klasse Data, welche die Superklasse von Group und Person ist.
Das machen wir damit Person und Group kompatibel werden.
Was uns noch vor einen Rätsel stellt:
-Müssen Person und Group generisch sein? Kann man sie dann trotzdem noch die Vornamen, nachnamen und titel vergleichen?
-Müssen diese dann Comparable implementieren?
-Wie arbeiten wir am effectivsten mit Wildcards? ( Zum Beispiel wäre Person<? extends ContactData> gut?)
Vllt sollten wir auch nochmal Generics lernen, aber das Vorlesungsmaterial von unserem Proffesor hilft uns im Moment nicht weiter. Beispiele wären hier deshalb sehr angebracht. Damit wir unsere Denkblockade durchbrechen können.
Ich danke recht herzliche allen schon mal im Vorraus für die Arbeit die ihr mit uns haben werdet.
Mit freundlichen Grüßen Sperling
meine Kommilitionen und ich haben ein Problem. Für uns sogar ein sehr großes.
In den Übungen werden im Moment Generics geprüft.
Leider verstehen wir im Moment nicht wie wir diese auf unsere Übung anwenden.
Das Grund Verständnis ist vorhanden also bitte keine externen Links zu tollen Büchern oder Tuts .
Uns fehlt ein entscheidender Gedanke zur Lösung.
Nun gut auf zur Problemstellung:
Wir haben eine Klasse Personen, Gruppe und ein Interface ContactData.
Personen:
-firstname
-lastname
-title
Gruppe:
-name
-liste(Diese kann Gruppen und Personen enthalten)
Diese Liste soll auch sortiert sein. Das heißt zu erst Personen diese sind nochmal sortiert durch nachname, vorname, titellänge. Danach kommen die Gruppen.
Jede Person speichert ein Objekt mit seinem Kontakt-Daten(ContactData) von denen nur die Schnittstelle(Interface) festgelegt ist: Zur Ausgabe können die Textzeilen des Kontakts mit den Methoden int getLineCount() und String getLine(int index) abgefragt werden. Der Versand einer Nachicht an den Kontakt geschieht über die Methode void sendMessage(String msg).
Damit die Kontaktverwaltung typsicher ist und nicht beliebige verschiedene Kontaktobjekte in einer Liste gemischt werden können wird der konkrete Typ der Kontaktobjekte als generischer Parameter bei den personen und Gruppen gesetzt. Der konkrete generische Typ muss dabei mindestens Contact Data sein, da sonst die Ausgabe nicht möglich ist.
So was wir bis jetzt haben:
(sind nur Code ausschnitte)
Java:
public class Person<T extends ContactData>
ContactData beinhaltet die Methoden getLine usw.
Außerdem haben wir eine Klasse Data, welche die Superklasse von Group und Person ist.
Das machen wir damit Person und Group kompatibel werden.
Was uns noch vor einen Rätsel stellt:
-Müssen Person und Group generisch sein? Kann man sie dann trotzdem noch die Vornamen, nachnamen und titel vergleichen?
-Müssen diese dann Comparable implementieren?
-Wie arbeiten wir am effectivsten mit Wildcards? ( Zum Beispiel wäre Person<? extends ContactData> gut?)
Vllt sollten wir auch nochmal Generics lernen, aber das Vorlesungsmaterial von unserem Proffesor hilft uns im Moment nicht weiter. Beispiele wären hier deshalb sehr angebracht. Damit wir unsere Denkblockade durchbrechen können.
Ich danke recht herzliche allen schon mal im Vorraus für die Arbeit die ihr mit uns haben werdet.
Mit freundlichen Grüßen Sperling