- package 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>Title: ReflectUtil.java</p>
- * <p>Description: 反射</p>
- *
- */
- public class ReflectUtil {
- private static final Logger log = Logger.getLogger(ReflectUtil.class);
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public static void setFieldValue(Object target, String fname, Class ftype,
- Object fvalue) {
- if (target == null
- || fname == null
- || "".equals(fname)
- || (fvalue != null && !ftype.isAssignableFrom(fvalue.getClass()))) {
- return;
- }
- Class clazz = target.getClass();
- try {
- Method 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 (Exception me) {
- if (log.isDebugEnabled()) {
- // log.debug("me异常-------->:"+me);
- }
- try {
- Field field = clazz.getDeclaredField(fname);
- if (!Modifier.isPublic(field.getModifiers())) {
- field.setAccessible(true);
- }
- field.set(target, fvalue);
- } catch (Exception fe) {
- if (log.isDebugEnabled()) {
- log.debug("fe----------->"+fe);
- }
- }
- }
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/0207201512981.html
来源: http://www.codesnippet.cn/detail/0207201512981.html