java利用反射實(shí)現(xiàn)動(dòng)態(tài)代理示例
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: 點(diǎn)滴工作室</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);
}
}
}
}
}
相關(guān)文章
SpringBoot3.0集成Jwt實(shí)現(xiàn)token驗(yàn)證過(guò)程
文章介紹了如何在Spring Boot項(xiàng)目中實(shí)現(xiàn)JWT(JSON Web Token)的認(rèn)證與授權(quán),主要內(nèi)容包括引入依賴、創(chuàng)建工具類、添加攔截器進(jìn)行token校驗(yàn)、登錄接口生成token、定義UserProvider解析用戶信息、自定義異常處理以及如何更新token的Audience以避免token泄露2025-12-12
使用Java實(shí)現(xiàn)先查詢緩存再查詢數(shù)據(jù)庫(kù)
這篇文章主要介紹了使用Java實(shí)現(xiàn)先查詢緩存再查詢數(shù)據(jù)庫(kù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
Java使用Sftp和Ftp實(shí)現(xiàn)對(duì)文件的上傳和下載
這篇文章主要介紹了Java使用Sftp和Ftp實(shí)現(xiàn)對(duì)文件的上傳和下載,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
java中hasNextInt判斷后無(wú)限循環(huán)輸出else項(xiàng)的解決方法
這篇文章主要介紹了java中hasNextInt判斷后無(wú)限循環(huán)輸出else項(xiàng)的解決方法的相關(guān)資料,需要的朋友可以參考下2016-10-10
Java開(kāi)發(fā)崗位面試被問(wèn)到嵌套類怎么辦
本篇文章主要介紹了深入理解Java嵌套類和內(nèi)部類,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2021-07-07

