Guten Tag!
Ich arbeite zur Zeit an einer Java/Swing-Applikation bei der ich auf folgendes Problem gestoßen bin:
Zunächst etwas Code (habe den Code in einem Testprojekt komprimiert um das Problem eingrenzen zu können):
Die Main.java ruft nurnoch
auf, die Modul.java ist quasi leer also zu ignorieren...
Es geht darum, dass der Wert des Arrays "modulcontainer" per Getter - Funktion in einer anderen Klasse aufgerufen werden soll.
Das Problem: Die Test-Ausgaben:
zeigen, dass sich die Werte im Array verändern:
Während in der while-Schleife noch die richtigen Werte vorhanden sind (Kolloquium,Abschlußarbeit,Englisch,Mathe,Java) so hat das Array "modulcontainer" unmittelbar nach der while-Schleife 5x den Wert (Java).
Ich verstehe nicht wirklich, warum und an welcher Stelle das passiert.
Bitte um Erleuchtung.
mfG
Ich arbeite zur Zeit an einer Java/Swing-Applikation bei der ich auf folgendes Problem gestoßen bin:
Zunächst etwas Code (habe den Code in einem Testprojekt komprimiert um das Problem eingrenzen zu können):
Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Data {
private Modul modulcontainer[] = new Modul[50];
private Modul modul = new Modul();
public void read() {
File f = new File("output.csv");
try {
if (f.exists())
{
BufferedReader reader = new BufferedReader(new FileReader(f));
String buffer;
int i = 0;
while ((buffer = reader.readLine()) != null) {
String[] results = buffer.split("#");
String part1 = results[0];
Integer part2 = Integer.parseInt(results[1]);
modul.setName(part1);
modul.setPunkte(part2);
modulcontainer[i] = modul;
System.out.println("Vorher: " + modulcontainer[i].getName() + " i = " + i);
i++;
}
for (int k= 0; k<5; k++) {
System.out.println("Nachher: " + modulcontainer[k].getName() + " k = " + k);
}
reader.close();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
Die Main.java ruft nurnoch
Java:
Data daten = new Data();
daten.read();
Es geht darum, dass der Wert des Arrays "modulcontainer" per Getter - Funktion in einer anderen Klasse aufgerufen werden soll.
Das Problem: Die Test-Ausgaben:
Vorher: Kolloquium i = 0
Vorher: Abschlußarbeit i = 1
Vorher: Englisch i = 2
Vorher: Mathe i = 3
Vorher: Java i = 4
Nachher: Java k = 0
Nachher: Java k = 1
Nachher: Java k = 2
Nachher: Java k = 3
Nachher: Java k = 4
zeigen, dass sich die Werte im Array verändern:
Während in der while-Schleife noch die richtigen Werte vorhanden sind (Kolloquium,Abschlußarbeit,Englisch,Mathe,Java) so hat das Array "modulcontainer" unmittelbar nach der while-Schleife 5x den Wert (Java).
Ich verstehe nicht wirklich, warum und an welcher Stelle das passiert.
Bitte um Erleuchtung.
mfG
Zuletzt bearbeitet von einem Moderator: