Variablen anderer Klassen auslesen (nur Name bekannt)

equin

Aktives Mitglied
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
 
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.
 
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?
 
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 😳
 

Zurück
Oben