Quote:
Originally Posted by chrisyou
Meine zweite Klasse ist halt ein geloopeder Thread.
Wie verhindere ich da, dass KlasseA ständig nochmal ausgeführt wird?
|
Du kannst zum einen den BufferedWriter sowie die Funktion getWriter als
public static deklarieren, wobei hier vielleicht eine NullPointerException auftreten könnte - wenn eine Variable/Funktion, die als
public static deklariert wurde aufzurufen, musst du keine neue Instanz der Klasse bilden:
Klasse_A:
Code:
public static BufferedWriter writer = new BufferedWriter(
new FileWriter(
new File("filename.txt").getAbsoluteFile()));
Klasse_B:
Code:
Klasse_A.writer.write("Hallo Welt!");
Klasse_A.writer.close();
Eine andere Möglichkeit wäre, dass du die Klasse_A in Klasse_B global deklarierst und initialisierst bzw. bei der Instanzbildung von Klasse_B initialisierst:
Klasse_A:
Code:
BufferedWriter writer = new BufferedWriter(
new FileWriter(
new File("filename.txt").getAbsoluteFile()));
public BufferedWriter getWriter()
{
return writer;
}
Klasse_B:
Code:
public class Klasse_B
{
Klasse_A writerClass;
//Alternativ:
//Klasse_A writerClass = new Klasse_A();
BufferedWriter writer;
public Klasse_B()
{
Klasse_A writerClass = new Klasse_A();
//Bei Alternative kann obrige Zeile entfernt werden
writer = writerClass.getWriter();
}
//Dein Thread
// (...)
writer.write("Hallo Welt!");
writer.close();
// (...)
}