Hi Leute,
ich habe ein Problem:
Ich versuche ein Java-Programm zu schreiben, in dem eine Liste vorkommt. In dieser Liste sind jetzt 50 Elemente von einem Typ. Diese Elemente muss ich später nochmal benutzen, wenn ich sie aber aufrufe, haben sie ihre typenspezifischen Dienste verloren.
(Beispiel: Ich habe Elemente vom selbsterstellten Typ „Skispringer“. Zurückgegeben werden sie mir aber als Elemente des Typs „Object“. Daher haben sie die Dienste, die mein Skispringer hat verloren.)
Weiß vielleicht jemand, wie ich dieses Problem lösen kann?
Hast Du die Liste auch „Typisiert“?
Also wenn Du sowas hier probierst:
ArrayList l = new ArrayList();
String name = „Bob“;
l.add(name);
System.out.println(l.get(0).charAt(1)); // prints „o“
Dann klappt das eigentlich. Oder habe ich Deine Frage falsch verstanden. Hast Du irgendwo Code zum zeigen??
Oder hast Du die Liste selbst geschrieben? Vielleicht ist da einfach statt des generischen Typs nur Object als return-Wert.
Naja, schwer ohne code. Sorry…
Hoffe, es hilft Dir trotzdem.
Ein Beispiel mit ArrayList
Die Klasse ArrayList implementiert das Interface List. Ich vermute, Du hast auch eine Klasse gewählt, die das Interface List implementiert.
In dieser Liste sind jetzt 50 Elemente von einem
Typ. Diese Elemente muss ich später nochmal benutzen, wenn ich
sie aber aufrufe, haben sie ihre typenspezifischen Dienste
verloren.
Wie erzeugst du deine Liste? Eine ArrayList wäre wie folgt anzulegen:
ArrayList myList = new ArrayList();
Jede Liste speichert halt Objekte. Wenn du nicht sagst, welcher Typ, dann ist das Objekt als Obermutter aller zuständig.
Hallo Daniel,
ich vermute mal du hast etwas in der Art geschrieben:
//Liste erstellen
List springer = new ArrayList();
//SkiSpringer hinzufügen
springer.add(new SkiSpringer());
springer.add(new SkiSpringer());
//drüber iterieren
for (int i=0; i springer = new ArrayList();
Innerhalb der For-Schleife kannst du dann das Objekt direkt wieder rausholen:
SkiSpringer skispringer = springer.get(i);
Hallo,
leider kenn ich mich in Java nur so gut aus, wie wir es in der Schule lernen. Da wir noch nie Listen behandelt haben fällt mein Wissen diesbezüglich eher mäßig aus Aber soweit ich weiß kann man Listen einen bestimmten Typ zuweisen, in deinem Fall z.B.:
List DeineListe = new ArrayList();
Das erste war der Schlüssel zum Erfolg!
Das zweite habe ich auch versucht, aber irgendwie nicht auf die Kette gekriegt, macht aber nichts - es läuft ja!
Danke
Daniel