Variablen anderer Klassen auslesen (nur Name bekannt)

Diskutiere Variablen anderer Klassen auslesen (nur Name bekannt) im Allgemeine Java-Themen Bereich.
E

equin

Hallo, ich habe ein config Object, von dem ich zur Compilezeit nicht weiß, welche Variablen es enthält.
Die Namen der Variablen kann ich leicht mit folgendem Code heraufinden. Ich will allerdings auch die Werte dieser Felder auslesen (String)
Kann mir jemand sagen, wie das hinbekommen kann?


Java:
				Field fields[] = config.getDeclaredFields();
				for(Field field : fields){
					field.getName();
					
				}
Viele Grüße
equin
 
S

SlaterB

die weiteren Methoden der Klasse Field in der API anschauen?
 
AlexSpritze

AlexSpritze

Java:
Field fields[] = config.getDeclaredFields();
for(Field field : fields){
  field.setAccessible(true);
  Object value = field.get(config);
  ...
Das Objekt
Code:
value
ist dann der Inhalt des Feldes. Wenn du sicher bist, dass es ein String ist, kannst du es casten. Aber tatsächlich ist das schon etwas umständlich, wenn du per Reflection auf Felder zugreifen musst. Gibt es da keine andere Möglichkeit für dich? Klingt nach Designfehlern, schlechter API, etc.
 
E

equin

Danke, mit der get()-Methode habe ich schon rumprobiert, wusste aber nicht welches Objekt ich reinstecken muss...

Die Sache ist die, dass verschiedene Klassen unterschiedliche Configs mit unterschiedlichen Variablen besitzen, diese aber auf einer UI verändert werden sollen. Mir würde da jetzt kein besserer Ansatz einfallen? Gibts da noch ne andere Möglichkeit sowas zu machen?
 
S

Shulyn

Musst aber aufpassen, bau besser 1-2 prüfungen auf null mehr ein. Sowie immer schön prüfen ob du es casten kannst. Habe mit sowas mal böse "bugs" gebaut :oops:
 
Thema: 

Variablen anderer Klassen auslesen (nur Name bekannt)

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben