/* * */ package ext.egantt.util.reflect; import com.egantt.util.Trace; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.*; public class ReflectionHelper { public ReflectionHelper() { } public static Iterator fields(Class clazz) { Field fields[] = clazz.getFields(); List list = new ArrayList(fields.length); for(int i = 0; i < fields.length; i++) { String a = null; try { a = (String)fields[i].get(new Object()); } catch(Throwable tr) { tr.printStackTrace(Trace.out); } if(a != null) list.add(a); } return list.iterator(); } public static void set(Object o, String field, Object value) { Method method = findMethod(o.getClass(), (new StringBuilder()).append("set").append(field).toString()); if(method == null) return; Object values[] = new Object[1]; values[0] = value; try { method.invoke(o, values); } catch(Exception ex) { ex.printStackTrace(Trace.out); } } protected static Method findMethod(Class clazz, String method) { Method methods[] = clazz.getMethods(); for(int z = 0; z < methods.length; z++) { if(!methods[z].getName().equals(method)) continue; Class params[] = methods[z].getParameterTypes(); if(params.length == 1) return methods[z]; } return null; } }