源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java利用反射实现动态代理示例

  • 时间:2021-08-18 16:58 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java利用反射实现动态代理示例
[u]复制代码[/u] 代码如下:
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);                 }             }         }     } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部