package litestruts; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class ReflectionUtil { public static List<Method> getSetterMethod(Class<?> clazz) { return getMethods(clazz, "set"); } public static void setParameters(Object o, Map<String, String> parameters) { List<Method> methods = getSetterMethod(o.getClass()); for(String name : parameters.keySet()){ String methodName = "set"+name; for(Method m : methods){ if(m.getName().equalsIgnoreCase(methodName)){ try { m.invoke(o, parameters.get(name)); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } } } public static List<Method> getGetterMethod(Class<?> clazz) { return getMethods(clazz,"get"); } public static List<Method> getMethods(Class<?> clazz, String startWithName) { List<Method> methods = new ArrayList<Method>(); for(Method method : clazz.getDeclaredMethods()){ if(method.getName().startsWith(startWithName)){ methods.add(method); } } return methods; } public static Map<String, Object> getParameters(Object o) { List<Method> methods = getGetterMethod(o.getClass()); Map<String, Object> parameters = new HashMap<String, Object>(); for(Method m : methods){ try { String name = m.getName().replaceFirst("get", "").toLowerCase(); Object value = m.invoke(o); parameters.put(name, value); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } return parameters; } }