Hallo
es scheint nicht meine woche zu sein.
gestern hab ich code geschrieben, der auch funktionierte.
heute beim einschalten des rechners funktioniert nichts mehr.
habe eine funktion implementiert, die mir alle set-funktionen mit standardwerten füllt (somit fülle ich ein von mir erstelltes objekt mit standardwerten sozusagen ein dummy-objekt)
die ausführung endet zwischen (1) und (2) ich habe auch schon versucht das mit einem try / catch block abzufangen, allerdings kommt auch dann keine ausgabe/exception!
irgendwelche ideen?
es scheint nicht meine woche zu sein.
gestern hab ich code geschrieben, der auch funktionierte.
heute beim einschalten des rechners funktioniert nichts mehr.
habe eine funktion implementiert, die mir alle set-funktionen mit standardwerten füllt (somit fülle ich ein von mir erstelltes objekt mit standardwerten sozusagen ein dummy-objekt)
Java:
static void invokeAll(Object obj) {
System.out.println("invokeAll started.");
Class<?>[] classes = { String.class, Integer.class, Double.class,
Boolean.class, Set.class, Calendar.class };
Object[] values = { "String", Integer.valueOf(0), Double.valueOf(0.0),
Boolean.valueOf(false), new HashSet<String>(),
Calendar.getInstance().clone() };
// TODO: nullvalues weg, realvalues verwenden.
Map<Class<?>, Object> nullValues = new HashMap<Class<?>, Object>();
Map<Class<?>, Object> realValues = new HashMap<Class<?>, Object>();
for (int i = 0; i < classes.length; i++) {
nullValues.put(classes[i], null);
realValues.put(classes[i], values[i]);
} // end TODO
// get all possible (set) functions
System.out.println("incovkeAll on obj " + obj.getClass().getName()); //(1)
Method[] methods = obj.getClass().getMethods();
System.out.println(methods.length); //(2)
for (int i = 0; i < methods.length; i++) {
Method m = methods[i];
if (m.getName().startsWith("set")) {
Class<?>[] argTypes = m.getParameterTypes();
if (argTypes.length == 1) {
try {
m.invoke(obj, nullValues.get(argTypes[0])); // change to realValues
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
if (DEBUG) {
System.out.println(String.format(
"function %s(args[%d]) set", m.getName(),
argTypes.length));
}
} else {
if (DEBUG) {
System.err.println(String.format(
"function %s(args[%d]) skipped", m.getName(),
argTypes.length));
}
}
}
}
System.out.println("invokeAll finished.");
}
irgendwelche ideen?
Zuletzt bearbeitet von einem Moderator: