复制代码代码如下:
Paket com.et59.cus.domain.dao.ex;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import org.apache.log4j.Logger;
/**
*
* <p>Titel: ReflectUtil.java</p>
* <p>Beschreibung: 反射</p>
* <p>Firma: 点滴工作室</p>
* @Version 2.0
*
*/
öffentliche Klasse ReflectUtil {
private static final Logger log = Logger.getLogger(ReflectUtil.class);
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void setFieldValue(Object target, String fname, Class ftype,
Objekt-F-Wert) {
if (Ziel == null
|| fname == null
|| "".equals(fname)
|| (fvalue != null && !ftype.isAssignableFrom(fvalue.getClass()))) {
zurückkehren;
}
Klasse clazz = target.getClass();
versuchen {
Methode method = clazz.getDeclaredMethod("set"
+ Character.toUpperCase(fname.charAt(0))
+ fname.substring(1), ftype);
if (!Modifier.isPublic(method.getModifiers())) {
method.setAccessible(true);
}
method.invoke(target, fvalue);
} Catch (Ausnahme bei mir) {
if (log.isDebugEnabled()) {
// log.debug("me异常-------->:"+me);
}
versuchen {
Feld field = clazz.getDeclaredField(fname);
if (!Modifier.isPublic(field.getModifiers())) {
field.setAccessible(true);
}
field.set(target, fvalue);
} Catch (Ausnahme z. B.) {
if (log.isDebugEnabled()) {
log.debug("fe----------->"+fe);
}
}
}
}
}