ich habe eine Klasse "Artikel" und eine Klasse "Buch"
Allgemeine GETer und SETer für Artikel befinden sich in der Artikel-Klasse und zB "ISBN" GET/SET er in der Buch-Klasse.
Nun übergebe ich eine Arraylist aus einer Klasse die die Artikel aus einer DB ausliest und speichere sie:
Code:
Collection ArtikelListe = katalog.getAlleArtikel();
Iterator it = ArtikelListe.iterator();
while (it.hasNext())
{
artikel = (Artikel)it.next();
if (artikel.getTyp().equals("buch"))
{
So nach dem IF soll nun der artikel als buch gespeichert werden und dann möchte ich per
buch. getAutor();
eben den Autor auslesen. Ich bekomme aber eben dies nicht hin. Da es als Artikel gespeichert wurde und nicht als buch.
Gespeichert wird wie folgt, nachdem aus eienr Datenbank ausgelesen wird, in einer while Schleife:
Code:
String artikelart = result.getString("artikel");
if (artikel.equals("buch"))
{
artikel = new Buch();
((Buch)artikel).setAutor(result.getString("autor"));
}
artikel.setTyp(artikelart);
katalogArrayList.add(artikel);
> Ich bekomme aber eben dies nicht hin. Da es als Artikel gespeichert wurde und nicht als buch.
dem Code nach befindest du dich da am Anfang von
'übergebe ich eine Arraylist aus einer Klasse die die Artikel aus einer DB ausliest und speichere sie:'
ist zu diesem Zeitpunkt denn nun schon gespeichert oder nicht?
wenn ja, welche Auswirkungen hat das Speichern?:
> Da es als Artikel gespeichert wurde und nicht als buch.
was verändert sich dadurch? der Typ des Objektes, ist es ein ganz anderes Objekt?
-------------
> Gespeichert wird wie folgt, nachdem aus eienr Datenbank ausgelesen wird
wieso wird direkt nach dem Lesen wieder gespeichert?
oder heißt Speichern bei dir 'Objekterstellung'?
--------
wie um alles in der Welt hängen überhaupt Artikel und Buch miteinander zusammen,
ist das eine eine Subklasse des anderen oder umgekehrt?
hälst du die Information nicht für wichtig genug, sie hier zu posten?
Ja entschuldige bitte meine ungenauigkeit ... Buch ist eine Subklasse von Artikel.
Weil viele Artikel aus der Datenbank ausgelesen werden wird hiernach wieder gespeichert.
Nach bedarf kann dann ein beliebiges Objekt aus zB einer Arryliste ausgelesen werden und die Informationen zB von einem bestimmten Buch angezeigt werden.
Ja es ist ein komplett anderes Objekt .... kann man die Daten des Artikels nicht irgendwie in ein Buch objekt speichern?
Danach könnte ich dann die Mehtode buch.getAutor() benutzen.
also lautet deine Frage nicht
> kann man die Daten des Artikels nicht irgendwie in ein Buch objekt speichern?
sondern
> kann man die Daten des Buches nicht irgendwie in ein Artikel objekt speichern?
...
wenn du das machen willst dann mach es doch.., warum hast du dann aber eine Subklasse?
du solltest lieber direkt beim Laden aus der DB ein Objekt des Typs Buch erstellen und später Casten: