ich suche eine Möglichkeit, wie ich von der aktuellen Methode die Anzahl Parameter bekommen kann und dann jeweils Arrays für die Typen (Class[] paramTypes:wink: und Werte (Object[] paramValues:wink: der Parametern füllen kann.
Kann mir da jemand helfen? Ich vermute, dass das irgendwie über reflections gehen muss, komme aber nicht so richtig weiter.
ich suche eine Möglichkeit, wie ich von der aktuellen Methode
die Anzahl Parameter bekommen kann und dann jeweils Arrays für
die Typen (Class[] paramTypes:wink: und Werte (Object[]
paramValues:wink: der Parametern füllen kann.
Kann mir da jemand helfen? Ich vermute, dass das irgendwie
über reflections gehen muss, komme aber nicht so richtig
weiter.
paramTypes über .instanceOf
paramValues über .valueOf
so zeigt er dir alles, nimm raus was du brauchst
private void zeigAlles(Object object) throws IllegalArgumentException, IllegalAccessException, SecurityException, NoSuchFieldException {
Class c = object.getClass();
for (Field field : c.getDeclaredFields()) {
field.setAccessible(true);
if(!field.getType().isPrimitive() && !(field.get(object) instanceof String)){
zeigAlles(field.get(object));
}
else
System.out.println("Name: „+field.getName()+“ - Klasse: „+field.get(object).getClass().getName()+“ Value: "+field.get(object));
}
Die Lösung des Problems liegt in dem package java.lang.reflect
für java.lang.reflect.Method gibts die funktion
getParameterTypes(), dass dir ein array mit Class
(Class[]) zurückliefert. Daraus kann man dann ein Object[] ableiten
das man der Methode übergibt.
Gruß Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]