手机
当前位置:查字典教程网 >编程开发 >Java >java利用反射实现动态代理示例
java利用反射实现动态代理示例
摘要:复制代码代码如下: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实现MD5加密算法的实例代码

java使用动态代理来实现AOP(日志记录)的实例代码

java序列化和java反序列化示例

java实现sunday算法示例分享

java HashMap通过value反查key的代码示例

java时间戳转日期格式的实现代码

java 获取数据库连接的实现代码

java list用法示例详解

java中使用DES加密解密实例

java jdk动态代理详解

精品推荐
分类导航