反射帮助类ReflectHelper

来源:互联网 发布:金盾42u网络机柜 编辑:程序博客网 时间:2024/05/20 22:01
/*    *反射帮助类    */public class ReflectHelper {    /*        *获取obj对象fieldName的Field        */    public static Field getFieldByFieldName(Object obj,String fieldName) {        Class<?> superClass;        for (superClass = obj.getClass();superClass != Object.class; superClass = superClass.getSuperClass()) {            try{                return superClass.getDeclaredField(fieldName);            } catch (NoSuchFieldException e) {            }        }        return null;    }    /*        *获取obj对象fieldName的属性值        */    public static Object getValueByFieldName(Object obj,String fieldName) throws SecurityException,NoSuchFieldException,IllegalArgumentException,IllegalAccessException {        Field field = getFieldByFieldName(obj,fieldName);        Object value = null;        if (field != null) {            if (field.isAccessible()) {                value = field.get(obj);            } else {                field.setAccessible(true);                value = field.get(obj);                field.setAccessible(false);            }        }        return value;    }    /*        *设置obj对象fieldName的属性值        */    public static void setValueByFieldName(Object obj,String fieldName,Object value) throws SecurityException,NoSuchFieldException,IllegalArgumentException,IllegalAccessException {        Field field = obj.getClass().getDeclaredField(fieldName);        if (field.isAccessible()) {            field.set(obj,value);        } else {            field.setAccessible(true);            field.set(obj,value);            field.setAccessible(false);        }    }}
1 0