Hi,
vorab kurz der relevante Code:
so, jetzt die Erklärung dazu
Die Methode bekommt zwei Strings übergeben. Der erste benötige ich, um zu identifizieren in welches Attribut der Wert geschrieben werden muss. Dafür lese ich alle Felder der Klasse ein und vergleiche diese mit dem String (bis dahin funktioniert das ganze auch prima)
Jetzt möchte ich den zweiten String dem entsprechenden Attribut als Wert zuordnen...nur genau da komme ich nicht ganz weiter.
ich habs mal mit element.set(...) probiert, aber auch alternativen wie
Das ganze passiert in einer abstrakten Klasse, das heißt an der Stelle weiß ich nicht in welcher der erweiternden Klassen ich mich befinde.
Im Grunde muss an der Stelle nur festgestellt werden von welchem Typ das Attribut ist und ein entsprechender Cast des Strings in diesen Typ vorgenommen werden.
Nur genau das bekomme ich nicht hin
Kurzfassung: element ist ein Attribut mit einem bestimmten Typ. Wie bekomme ich meinen String tempData als Wert dem element zugeordnet?
Gruß und Danke
moepasd
vorab kurz der relevante Code:
Code:
public void setAttribute(String tempHead, String tempData) {
Field[] allAttributes = getClass().getDeclaredFields();
for (int i = 0; i < allAttributes.length; i++) {
Field element = (Field) allAttributes[i];
if (element.getName().startsWith("db_")) {
if (tempHead.equals(element.getName().substring(3))){
try {
element.set(this, tempData);
}
catch (IllegalArgumentException e) { e.printStackTrace(); }
catch (IllegalAccessException e) { e.printStackTrace(); }
}
}
}
}
so, jetzt die Erklärung dazu
Die Methode bekommt zwei Strings übergeben. Der erste benötige ich, um zu identifizieren in welches Attribut der Wert geschrieben werden muss. Dafür lese ich alle Felder der Klasse ein und vergleiche diese mit dem String (bis dahin funktioniert das ganze auch prima)
Jetzt möchte ich den zweiten String dem entsprechenden Attribut als Wert zuordnen...nur genau da komme ich nicht ganz weiter.
ich habs mal mit element.set(...) probiert, aber auch alternativen wie
Code:
if (element.getType().newInstance() instanceof Integer) {...}
Im Grunde muss an der Stelle nur festgestellt werden von welchem Typ das Attribut ist und ein entsprechender Cast des Strings in diesen Typ vorgenommen werden.
Nur genau das bekomme ich nicht hin
Kurzfassung: element ist ein Attribut mit einem bestimmten Typ. Wie bekomme ich meinen String tempData als Wert dem element zugeordnet?
Gruß und Danke
moepasd