通过Spring LocalVariableTableParameterNameDiscoverer 获取方法参数名
2016-05-26 11:26
459 查看
import org.springframework.core.LocalVariableTableParameterNameDiscoverer public class Test{ private static final LocalVariableTableParameterNameDiscoverer parameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer(); /** * 获取方法所有参数名 * @param method * @return */ public static String[] getParameterNames(Method method) { return parameterNameDiscoverer.getParameterNames(method); } public static void main(String[] args) throws ClassNotFoundException { Class<?> aClass = Class.forName("com.codercool.ssm.modules.system.service.impl.UserServiceImpl"); Method[] methods = aClass.getMethods(); StringBuilder sb = new StringBuilder(); for (Method method : methods) { sb.append("方法:"+method.getName() + " "); String[] parameterNames = getParameterNames(method); if (parameterNames == null || parameterNames.length <1) { sb.append("无参"); } else { sb.append("["); for (int i = 0; i < parameterNames.length ; i++) { sb.append(parameterNames[i]); sb.append(","); } sb.append("]"); } sb.append("\n"); } System.out.println(sb.toString()); } } public class UserServiceImpl implements IUserService { @Autowired private UserDao userDao; public void addUser(String userId,User user) { userDao.add(user); } } 输出结果: 方法:addUser [userId,user,] 方法:wait 无参 方法:wait 无参 方法:wait 无参 方法:equals 无参 方法:toString 无参 方法:hashCode 无参 方法:getClass 无参 方法:notify 无参 方法:notifyAll 无参 扩展信息: Spring此功能是基于ASM框架实现
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Java反射随记
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- AS3中的反射(速记) 分析
- 探索ORACLE之ASM概念(完整版)
- C# 反射(Reflection)的用处分析
- C#通过反射创建自定义泛型
- 通俗易懂的C#之反射教程
- C#根据反射和特性实现ORM映射实例分析
- 深入反射生成数组的详解
- C#利用反射来判断对象是否包含某个属性的实现方法
- C#利用反射技术实现去掉按钮选中时的边框效果
- C#泛型和反射实例解析
- C# Dynamic关键字之:dynamic为什么比反射快的详解