博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在SpringAOP中如何获取方法的参数值(实体类)以及参数名
阅读量:7003 次
发布时间:2019-06-27

本文共 1776 字,大约阅读时间需要 5 分钟。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/81901481

 废话不多说直接上代码 参数对了效果就可以出来  返回值是一个map key 是参数名称 value 是参数值,

private static Map getFieldsName(ProceedingJoinPoint joinPoint) throws ClassNotFoundException, NoSuchMethodException {        String classType = joinPoint.getTarget().getClass().getName();        String methodName = joinPoint.getSignature().getName();        // 参数值        Object[] args = joinPoint.getArgs();        Class
[] classes = new Class[args.length]; for (int k = 0; k < args.length; k++) { if (!args[k].getClass().isPrimitive()) { // 获取的是封装类型而不是基础类型 String result = args[k].getClass().getName(); Class s = map.get(result); classes[k] = s == null ? args[k].getClass() : s; } } ParameterNameDiscoverer pnd = new DefaultParameterNameDiscoverer(); // 获取指定的方法,第二个参数可以不传,但是为了防止有重载的现象,还是需要传入参数的类型 Method method = Class.forName(classType).getMethod(methodName, classes); // 参数名 String[] parameterNames = pnd.getParameterNames(method); // 通过map封装参数和参数值 HashMap
paramMap = new HashMap(); for (int i = 0; i < parameterNames.length; i++) { paramMap.put(parameterNames[i], args[i]); } return paramMap; } private static HashMap
map = new HashMap
() { { put("java.lang.Integer", int.class); put("java.lang.Double", double.class); put("java.lang.Float", float.class); put("java.lang.Long", long.class); put("java.lang.Short", short.class); put("java.lang.Boolean", boolean.class); put("java.lang.Char", char.class); } };

 

你可能感兴趣的文章
《SQL Server企业级平台管理实践》读书笔记——关于SQL Server数据库的还原方式...
查看>>
全栈JavaScript之路(十七)HTML5 新增字符集属性
查看>>
iOS开发中的Html解析方法
查看>>
Binary Tree Level Order Traversal
查看>>
学习C#基础知识这段时间
查看>>
IIS7 配置 PHP5.5
查看>>
Android系统匿名共享内存Ashmem(Anonymous Shared Memory)在进程间共享的原理分析
查看>>
Redis服务快速部署
查看>>
使嵌入式Qt支持中文字体变换的方法(makeqpf)
查看>>
[Papers]NSE, $\pi$, Lorentz space [Suzuki, JMFM, 2012]
查看>>
VB 中ListView 某一列的颜色添加不上去的解决方法
查看>>
表单控制变量
查看>>
backbone 1.1.2 api
查看>>
让Zend Studio联系关系CakePHP模板文件.ctp
查看>>
中国风电生产监控平台界面
查看>>
使用Java高速实现进度条
查看>>
adb 卸载android系统程序
查看>>
svn配置
查看>>
[禅悟人生]时机未达静若处子,时机成熟动如脱兔
查看>>
Web 在线文件管理器学习笔记与总结(10)查看文件夹中的内容
查看>>