Java 春天+;Mybatis,我如何获得dao方法';运行时的参数名?
在代码中,当我只知道指向dao对象的beanId时,如何在运行时获得方法(在dao对象中)参数名 我正在使用Java7、Spring4.1.6.RELEASE和Mybatis 3.2.8。我完全不懂Java 春天+;Mybatis,我如何获得dao方法';运行时的参数名?,java,java-7,mybatis,spring-mybatis,Java,Java 7,Mybatis,Spring Mybatis,在代码中,当我只知道指向dao对象的beanId时,如何在运行时获得方法(在dao对象中)参数名 我正在使用Java7、Spring4.1.6.RELEASE和Mybatis 3.2.8。我完全不懂 String daoBeanId=“IUserDao”; String methodName=“insertUser”; ApplicationContext ApplicationContext=SpringContextUtil.getApplicationContext(); 对象daoIns
String daoBeanId=“IUserDao”;
String methodName=“insertUser”;
ApplicationContext ApplicationContext=SpringContextUtil.getApplicationContext();
对象daoInstance=applicationContext.getBean(daoBeanId);
类daoClass=daoInstance.getClass();
方法Method=reflectil.getMethod(daoClass,methodName);
//获取此方法的参数名称的一些代码
这不同于“我可以使用Java反射获取方法参数名吗?”,因为在mybatis中,dao对象是代理对象,代理对象似乎没有参数名信息,所以如果使用Java 8,这会使这个问题更加复杂和困难,请查看下面的链接,使用反射获取方法参数名称
您可以在Java 8中尝试此功能
Parameter[] parameters = method.getParameters();
for (Parameter parameter : parameters) {
System.out.println(parameter.getName());
}
这适用于早期的Java版本
for (int i = 0; i < method.getArgumentTypes().length; i++) {
LocalVariable variable =
method.getLocalVariableTable().getLocalVariable(i);
System.out.println(variable.getName());
}
for(int i=0;i
这不同于“我可以使用Java反射获取方法参数名吗?”,因为在mybatis中,dao对象是代理对象,代理对象似乎没有参数名信息,所以这使得这个问题更加复杂和困难