Mehrere Datentypen in einer Arraylist speichern

Diskutiere Mehrere Datentypen in einer Arraylist speichern im Allgemeine Java-Themen Bereich.
H

Hieu

Hallo Leute,
ich würde gerne eine Arraylist erstellen, wo ich Instanzen vom Datentyp Privatkunden und vom Datentype Geschäftskunden drinn speicher. Gibt es dafür eine Möglichkeit?
 
F

fhoffmann

Normalerweise sollten Privatkunden und Geschäftskunden beide von einer Klasse Kunden erben (oder ein solches Interface implementieren). Dann kannst du in deiner ArrayList Kunden speichern.
 
T

temi

najaa das sind beides Unterklassen einer Klasse Kunden und die haben jeweilis noch neue Attribute
Ok, wenn es Unterklasse von Kunden sind, dann passt ja der Vorschlag von @fhoffmann.

Ich habe gefragt, weil es möglicherweise nicht sinnvoll ist, Privatkunde und Geschäftskunde in separaten Klassen zu modellieren. Meist gibt es bessere Lösungen, aber das wirst du am besten wissen, weil wir (ich) die Anforderungen nicht kennen.
 
F

fhoffmann

Wenn du eine (abstakte) Oberklasse "Kunde" hast, sollte diese schon alle benötigten Methoden deklarieren, z.B String getBriefAnrede().
Die erbende Klasse "GeschaeftsKunde" gibt immer zurück
Sehr geehrte Damen und Herren
Die erbende Klasse "PrivatKunde" gibt je nach Geschlechts des Kunden zurück:
Sehr geehrte Frau Mayer
bzw.
Sehr geehrter Herr Mayer.

Du musst also nicht (von außen) auf die Metode getGeschlecht() einer natürlichen Person zugreifen, sondern benutzt sie nur intern in der Metode String getBriefAnrede().

Solltest du in "GeschaeftsKunde" und in "PrivatKunde" unterschiedliche Methoden haben, hast du einen Fehler im Design gemacht!
 
R

realodds

Es sollte doch auch einfach folgendermaßen gehen:
Java:
ArrayList<Object> kunden = new ArrayList<>();
kunden.add(privateKunde1);
 
T

temi

Es sollte doch auch einfach folgendermaßen gehen:
Java:
ArrayList<Object> kunden = new ArrayList<>();
kunden.add(privateKunde1);
Das ist eine denkbar schlechte Lösung. Um auf Methoden von Kunden zugreifen zu können muss jetzt jedesmal von Object zu Kunde gecastet werden. Außerdem ist das nicht der Sinn einer generischen Klasse, wie List<>.
Seine Liste sollte Kunden enthalten.
Java:
List<Kunde> kunden = new ArrayList<>();
kunden.add(privateKunde1);
 
Thema: 

Mehrere Datentypen in einer Arraylist speichern

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben