Stelle wo ich Properties auslesen kann?

tobiaft

Mitglied
Hallo!

Ich möchte Variablen Werte zuweisen, die in einer properties-Datei stehen. Im Konstruktor funktioniert folgender Code auch wunderbar:

Code:
public MLA_feedback() {
  	
    Properties properties = new Properties();
    try {
        InputStream is = MLA_feedback.class.getResourceAsStream("mla.properties");
        properties.load(is);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    int GesamtRundenZahl = Integer.parseInt(properties.getProperty("rundenzahl")); 	
}

Nur muss ich die Variablenwerte oberhalb des Konstruktors zuweisen, wo obiger Code aus irgendeinem Grund in Eclipse Fehler auswirft. Kann ich direkt hinter
Code:
public class MLA_feedback extends Applet {
keine properties-Datei auslesen :confused:

Ich muss leider auf einem gegebenen Applet aufsetzen und die Programmstruktur beibehalten.

Danke...Tobias
 
Also da wo du die Properties auslesen willst, befindest du dich doch in einem Deklarationsbereich. Würde mich stark wundern, wenn du da Methodenaufrufe hinbekommst.

Kannst du "Nur muss ich die Variablenwerte oberhalb des Konstruktors zuweisen" bitte mal genauer spezifizieren? Ich kann mir nicht vorstellen, was du damit meinst.
 
Die Variable wird so im Deklarationsbereich initialisiert:
Code:
public class MLA_feedback extends Applet {

int GesamtRundenZahl;
...}
Im Konstruktor kann ich ihr wie oben dargestellt aus der properties-Datei einen Wert zuweisen.

Das Problem ist nur, dass ich beim Debuggen gemerkt habe, dass die Variable den zugewiesenen Wert im weiteren Programmablauf nicht behält. Sie wird - warum auch immer - zurück gesetzt? :mad:
 
Hi!

Hm ... ich kann dir leider auch nicht ganz folgen, also wenn du, wie im ersten code-snippe beschrieben, lediglich in der Methode eine Variable initialisierst, und dann einen Wert zuweiset, dann ist es klar, dass der Wert wieder zurückgesetzt wird. Die "Lebensdauer" der Variable ist eben nur auf deine Methode beschränkt (siehe Methode MLA_feedback).

Wenn du allerdings, wie dann im zweiten code sample beschrieben, eine Variable im Deklarationsbereich der Klasse definierst, und dann in der Methode MLA_feedback statt
Code:
int xVar = ...
einfach
Code:
this.xVar = ...
eingibst, sollte es funktionieren.

Ich hoffe ich habe deine Problemstellung richtig erkannt.

Gruß
TOM
 
Zurück