S
student@work
Gast
Hallo.
Hinweis: Übungsaufgabe.
Wir haben die Voraussetzung (Einschränkung): Nur List, ArrayList und java.lang.*; verwenden zu können/dürfen.
Ich habe eine Liste, die Elemente des Typs Oberklasse enthält. Die Klasse Oberklasse ist abstract,
von daher sind letztendlich nur Elemente vom Typ Unterklasse (extends Oberklasse) in der Liste enthalten.
Um alle Elemente aus der Liste zu erhalten, die ein Objekt vom Typ Unterklasse repräsentieren
könnte ich für jede Unterklasse jeweils eine eigene Methode der Form
schreiben.
Das Projekt könnte* jedoch mit der Zeit um weitere Unterklassen erweitert werden.
Daher müsste man dann bei jeder weiteren Unterklasse eine Methode der
Form getUnterklasseList() hinzufügen. Ich würde die Änderungen aber lieber lokal halten.
Meine Frage lautet:
Gibt es einen allgemeineren Ansatz, evtl. mit Generics, Utility-Methode, ...?
Wie wird das in der Praxis gehandhabt?
Dazu hatte ich eine Idee, die jedoch nicht ohne Ausgabe einer Warnung auskam.
Aufgrund von "Type Erasure" habe ich nun aber einige Probleme bekommen ...
Übersehe ich gerade etwas (Bin gerade am Durchstöbern der API ab ArrayList. Design Fehler, ...)?
Gibt es eine einfache(re) Lösung für dieses Problem, ohne für
jede Unterklasse eine Filtermethode schreiben zu müssen?
Ich werde weiter darüber nachdenken,
aber wenn mir hier jemand einen Tipp
geben kann, wäre dies sehr schön.
Viele Grüße,
Marvin
---------------------------------------------------------------------------------------------------
Zu * muss ich sagen: Dies passiert wenn überhaupt nur sehr selten, von daher wäre der Ansatz mit
den einzelnen Methoden für die Aufgabe sogar in Ordnung. Dennoch würde mir eine allgemeinere
Lösung besser gefallen.
Hinweis: Übungsaufgabe.
Wir haben die Voraussetzung (Einschränkung): Nur List, ArrayList und java.lang.*; verwenden zu können/dürfen.
Ich habe eine Liste, die Elemente des Typs Oberklasse enthält. Die Klasse Oberklasse ist abstract,
von daher sind letztendlich nur Elemente vom Typ Unterklasse (extends Oberklasse) in der Liste enthalten.
Um alle Elemente aus der Liste zu erhalten, die ein Objekt vom Typ Unterklasse repräsentieren
könnte ich für jede Unterklasse jeweils eine eigene Methode der Form
Java:
/**
* @return Eine Liste, die nur Objekte vom Typ Unterklasse enthält.
*/
List<Unterklasse> getUnterklasseList() {/* ... */}
schreiben.
Das Projekt könnte* jedoch mit der Zeit um weitere Unterklassen erweitert werden.
Daher müsste man dann bei jeder weiteren Unterklasse eine Methode der
Form getUnterklasseList() hinzufügen. Ich würde die Änderungen aber lieber lokal halten.
Meine Frage lautet:
Gibt es einen allgemeineren Ansatz, evtl. mit Generics, Utility-Methode, ...?
Wie wird das in der Praxis gehandhabt?
Dazu hatte ich eine Idee, die jedoch nicht ohne Ausgabe einer Warnung auskam.
Aufgrund von "Type Erasure" habe ich nun aber einige Probleme bekommen ...
Übersehe ich gerade etwas (Bin gerade am Durchstöbern der API ab ArrayList. Design Fehler, ...)?
Gibt es eine einfache(re) Lösung für dieses Problem, ohne für
jede Unterklasse eine Filtermethode schreiben zu müssen?
Ich werde weiter darüber nachdenken,
aber wenn mir hier jemand einen Tipp
geben kann, wäre dies sehr schön.
Viele Grüße,
Marvin
---------------------------------------------------------------------------------------------------
Zu * muss ich sagen: Dies passiert wenn überhaupt nur sehr selten, von daher wäre der Ansatz mit
den einzelnen Methoden für die Aufgabe sogar in Ordnung. Dennoch würde mir eine allgemeinere
Lösung besser gefallen.