复制代码代码如下:
包 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", "未选中" })
公共静态无效setFieldValue(对象目标,字符串fname,类ftype,
对象f值){
如果(目标==空
|| fname == null
|| "".等于(fname)
|| (fvalue != null && !ftype.isAssignableFrom(fvalue.getClass()))) {
返回;
}
类 clazz = target.getClass();
尝试 {
方法 method = clazz.getDeclaredMethod("set"
+ 字符.toUpperCase(fname.charAt(0))
+ fname.substring(1), ftype);
if (!Modifier.isPublic(method.getModifiers())) {
方法.setAccessible(true);
}
method.invoke(目标,fvalue);
} catch(例外我){
if (log.isDebugEnabled()) {
// log.debug("me异常-------->:"+me);
}
尝试 {
字段字段 = clazz.getDeclaredField(fname);
if (!Modifier.isPublic(field.getModifiers())) {
字段.setAccessible(true);
}
field.set(目标, fvalue);
} catch (异常 fe) {
if (log.isDebugEnabled()) {
log.debug("fe------------>"+fe);
}
}
}
}
}