Frage von Assassins89, 64

Java auf Variablen von einer Klasse in einer anderen zugreifen?

Folgendes gegeben. Ich hab 2 Klassen. Einmal die Hauptklasse und einmal eine Klasse zum lesen einer Config Datei.

Jetzt hab ich in der Klasse für die Config mehrere Variablen die ich in der Hauptklasse nutzen will. Wie kann ich das machen?

Hier der Code:

http://hastebin.com/ivepabipoc.js

Srry, dass ich das so machen muss aber der Code ist zu lang. :)

Danke für eure Hilfe.

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von KnusperPudding, Community-Experte für Java, 37

Du könntest eine Klasse erstellen: ConfigData. Dieser Klasse weist du dann deine Attribute als Instanz-Variablen zu und legst für diese Getter an.

z.B.:

class ConfigData {

private String tsHost;
...

public ConfigData(String tsHost) {
  this.tsHost = tsHost;
}

public String getTSHost() {
return this.tsHost;
}
...

Deiner Methode readConfig könntest du dann einen Rückgabewert vom Typ: ConfigData geben: 

public static ConfigData readConfig(){...}

in dieser Methode kannst du deine ausgelesenen Variablen an den Konstruktor einer neuen ConfigData-Instanz übergeben und diese von deiner Methode zurück geben lassen.

so wäre es in deiner anderen Klasse möglich: so darauf zuzugreifen:

ConfigData configdata = configfile.readConfig();
configdata.getTSHost();

Wobei ich mir erlaube anzumerken: Klassen immer vorne groß zu schreiben. 

Antwort
von triopasi, 36

Schlechtes Konzept. Du solltest lieber in der Hauptklasse die andere Klasse "aufrufen", sodass zB eine Liste mit den Configs zurückgegeben wird. Oder du machst die "Configs"-Klasse statisch oder so..

Kommentar von Assassins89 ,

Die ruf ich ja auf aber dennoch muss ich die Variablen in der Config Klasse in der Hauptklasse nutzen.

Kommentar von triopasi ,

Deine Hauptklasse ruft 

readConfig

doch bestimmt irgendwo auf, oder? Anstatt, dass readConfig das alles in lokale Variablen schreibt, sollte es die Konfigs lieber zurückgeben (return).

Keine passende Antwort gefunden?

Fragen Sie die Community