ProceedingJoinPoint 某些方法記錄一下


轉載與百度知道,記錄一下。遇到在去看API 官方文檔

//
攔截的實體類 Object target = point.getTarget(); //攔截的方法名稱 String methodName = point.getSignature().getName(); //攔截的方法參數 Object[] args = point.getArgs(); //攔截的放參數類型 Class[] parameterTypes = ((MethodSignature)point.getSignature()).getMethod().getParameterTypes(); Method m = null; try { //通過反射獲得攔截的method m = target.getClass().getMethod(methodName, parameterTypes); //如果是橋則要獲得實際攔截的method if(m.isBridge()){ for(int i = 0; i < args.length; i++){ //獲得泛型類型 Class genClazz = GenericsUtils.getSuperClassGenricType(target.getClass()); //根據實際參數類型替換parameterType中的類型 if(args[i].getClass().isAssignableFrom(genClazz)){ parameterTypes[i] = genClazz; } } //獲得parameterType參數類型的方法 m = target.getClass().getMethod(methodName, parameterTypes); } } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM