复制代码代码如下:
пакет com.et59.cus.domain.dao.ex;
импортировать java.lang.reflect.Field;
импортировать java.lang.reflect.Method;
импортировать java.lang.reflect.Modifier;
импортировать org.apache.log4j.Logger;
/**
*
* <p>Название: ReflectUtil.java</p>
* <p>Описание: 反射</p>
* <p>Компания: 点滴工作室</p>
* @версия 2.0
*
*/
общественный класс ReflectUtil {
частный статический окончательный журнал Logger = Logger.getLogger(ReflectUtil.class);
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void setFieldValue (цель объекта, String fname, Class ftype,
Объект fvalue) {
если (цель == ноль
|| имя имени == ноль
|| "".equals(имя имени)
|| (fvalue != null && !ftype.isAssignableFrom(fvalue.getClass()))) {
возвращаться;
}
Класс clazz = target.getClass();
пытаться {
Метод метод = clazz.getDeclaredMethod("set"
+ Символ.toUpperCase(fname.charAt(0))
+ fname.substring(1), ftype);
if (!Modifier.isPublic(method.getModifiers())) {
метод.setAccessible(истина);
}
метод.invoke(цель, fvalue);
} catch (исключение для меня) {
если (log.isDebugEnabled()) {
// log.debug("me异常-------->:"+me);
}
пытаться {
Поле поля = clazz.getDeclaredField(fname);
if (!Modifier.isPublic(field.getModifiers())) {
поле.setAccessible(истина);
}
field.set(цель, fvalue);
} catch (исключение, например) {
если (log.isDebugEnabled()) {
log.debug("fe----------->"+fe);
}
}
}
}
}