Hi Jungs, ich hab eine kleine Frage zu einer interessanten Problemstellung:
Man nehme an ich habe 2 Strings, string1 und string2.
Der Inhalt der beiden:
[JAVA=42]
String string1="int";
String string2 = "42";
[/code]
Mit Java-Reflection kann man ja Methoden triggern wie man möchte.
In meinem Fall will ich folgenden Setter einer Klasse antriggern:
[JAVA=42]
int number = 0;
...
public void setNumber(int number) {
this.number=number;
}
[/code]
Der Reflection-Code für die Methode würde wie folgt aussehen:
[JAVA=42]
Method setter = this.getClass().getDeclaredMethod("setNumber", int.class);
setter.invoke(this, Integer.valueOf(string2);
[/code]
Und hier kommt meine Problemstellung:
Kann ich aus string1 der effektiv ja Information für [c]int.class[/c], also "int" enthält, irgendwie generisch dieses int.class bauen?
Nochmal zusammen gefasst: Ich würd gern irgendwie aus der datentyp information "int.class" machen und dabei danach wirklich das Class-Objekt erhalten?
Ich hoffe ihr wisst was ich meine und könnt mir helfen^^
Natürlich könnte ich die Method-Invocation auch in ein riesiges Switch/Case verpacken, aber da müsste ich eben alle Datentypen behandeln. Ich glaub aber es wär sauberer weil den Cast von string2 in den eigentlichen Datentyp werd ich nicht so generisch mit nem coolen (datentyp) hinbekommen.
Man nehme an ich habe 2 Strings, string1 und string2.
Der Inhalt der beiden:
[JAVA=42]
String string1="int";
String string2 = "42";
[/code]
Mit Java-Reflection kann man ja Methoden triggern wie man möchte.
In meinem Fall will ich folgenden Setter einer Klasse antriggern:
[JAVA=42]
int number = 0;
...
public void setNumber(int number) {
this.number=number;
}
[/code]
Der Reflection-Code für die Methode würde wie folgt aussehen:
[JAVA=42]
Method setter = this.getClass().getDeclaredMethod("setNumber", int.class);
setter.invoke(this, Integer.valueOf(string2);
[/code]
Und hier kommt meine Problemstellung:
Kann ich aus string1 der effektiv ja Information für [c]int.class[/c], also "int" enthält, irgendwie generisch dieses int.class bauen?
Nochmal zusammen gefasst: Ich würd gern irgendwie aus der datentyp information "int.class" machen und dabei danach wirklich das Class-Objekt erhalten?
Ich hoffe ihr wisst was ich meine und könnt mir helfen^^
Natürlich könnte ich die Method-Invocation auch in ein riesiges Switch/Case verpacken, aber da müsste ich eben alle Datentypen behandeln. Ich glaub aber es wär sauberer weil den Cast von string2 in den eigentlichen Datentyp werd ich nicht so generisch mit nem coolen (datentyp) hinbekommen.