Hallo @all,
ich weiß zwar nicht genau ob das ein Anfägerproblem ist aber eine Lösung wäre trotzdem schön.
Ich lasse aus einer Datei Datensätze auslesen, dies sind einzelne Rechnungen. Diese Rechnungen sollen jeweils in einem Objekt der Klasse Rechnung gespeichert werden. Alle Objekte vom Typ Rechnung werden in einem Vector verwaltet. Nachfolgend der Quelltext.
Das Problem liegt innerhalb des if-Block (meiner Meinnug nach). Schon bei der Ausgabe vor dem return-Statement wird nur der letzte Datensatz angezeigt. Dies geschieht zwar so oft, wie Datensätze in den Vector hinzugefügt wurden aber eben nur für den letzten. Ich habe den Verdacht, dass die angelegten Objekte immer wieder "überschrieben" werden. Alle set- und get-Methoden sind in der Klasse Rechnung implementiert und weisen nur die übergebenen Werte an die globalen Variablen der Klasse. Ich arbeite derzeit mit der JRE 1.5.0_06. Ich habe schon verschiedene Varianten für die Implementierung versucht aber das Ergebnis ist immer identisch.
Danke und viele Grüße
ich weiß zwar nicht genau ob das ein Anfägerproblem ist aber eine Lösung wäre trotzdem schön.
Ich lasse aus einer Datei Datensätze auslesen, dies sind einzelne Rechnungen. Diese Rechnungen sollen jeweils in einem Objekt der Klasse Rechnung gespeichert werden. Alle Objekte vom Typ Rechnung werden in einem Vector verwaltet. Nachfolgend der Quelltext.
Code:
public class RechnungFuellen {
private Vector<Rechnung> vRechnungList = new Vector<Rechnung>();
private int counter = 0;
public RechnungFuellen() {
}
public Vector getRechnungen(String jahr, String monat) {
//...
//...
if (RecordSet[0].equals(jahr) && RecordSet[1].equals(monat)) {
vRechnungList.add(counter, new Rechnung() );
vRechnungList.get(counter).setJahr(RecordSet[0]);
vRechnungList.get(counter).setMonat(RecordSet[1]);
vRechnungList.get(counter).setGeschaeft(RecordSet[2]);
vRechnungList.get(counter).setBetrag(Double.parseDouble(RecordSet[3]));
counter++;
}
//...
//...
}
} catch(IOException fe) {
System.out.println("Die Datei zum einlesen wurde nicht gefunden oder ähnliches.");
}
for(int i=0; i<vRechnungList.size(); i++) {
System.out.println("GS: " + vRechnungList.get(i).getGeschaeft + " BTR: " + vRechnungList.get(i).getBetrag);
}
return vRechnungList;
}
Das Problem liegt innerhalb des if-Block (meiner Meinnug nach). Schon bei der Ausgabe vor dem return-Statement wird nur der letzte Datensatz angezeigt. Dies geschieht zwar so oft, wie Datensätze in den Vector hinzugefügt wurden aber eben nur für den letzten. Ich habe den Verdacht, dass die angelegten Objekte immer wieder "überschrieben" werden. Alle set- und get-Methoden sind in der Klasse Rechnung implementiert und weisen nur die übergebenen Werte an die globalen Variablen der Klasse. Ich arbeite derzeit mit der JRE 1.5.0_06. Ich habe schon verschiedene Varianten für die Implementierung versucht aber das Ergebnis ist immer identisch.
Danke und viele Grüße