|
|
自己写的一个beanutil,支持动态调用,主要运用了反射,代码如下
public class BeanUtil { public static<Bean> void set(Bean bean,String fieldName,Object value)throws Exception{Class<Bean> c=(Class<Bean>)bean.getClass();Field field=c.getDeclaredField(fieldName);field.setAccessible(true);field.set(bean, value);}public static<Bean> Object get(Bean bean,String fieldName)throws Exception{Class<Bean> c=(Class<Bean>) bean.getClass();Field field=c.getDeclaredField(fieldName);field.setAccessible(true);return field.get(bean);}public static<Bean> Object invoke(Bean bean,String methodName,Object[]params)throws Exception{Class c=bean.getClass();Class parameterTypes[]=new Class[params.length];for(int i=0;i<params.length;i++){parameterTypes[i]=params[i].getClass();}Method method=c.getMethod(methodName, parameterTypes); return method.invoke(bean, params);} } |
|