Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 春天+;Mybatis,我如何获得dao方法';运行时的参数名?_Java_Java 7_Mybatis_Spring Mybatis - Fatal编程技术网

Java 春天+;Mybatis,我如何获得dao方法';运行时的参数名?

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

在代码中,当我只知道指向dao对象的beanId时,如何在运行时获得方法(在dao对象中)参数名

我正在使用Java7、Spring4.1.6.RELEASE和Mybatis 3.2.8。我完全不懂

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对象是代理对象,代理对象似乎没有参数名信息,所以这使得这个问题更加复杂和困难