java利用反射实现动态代理示例_Java教程-查字典教程网
java利用反射实现动态代理示例
java利用反射实现动态代理示例
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:packagecom.et59.cus.domain.dao.ex;importjava.lang.reflect.Fie...

复制代码 代码如下:

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>

* <p>Company: 点滴工作室</p>

* @version 2.0

*

*/

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);

}

}

}

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Java学习
    热门Java学习
    编程开发子分类