在代码中,当我只知道指向dao对象的beanId时,如何在运行时获取方法(在dao对象中)参数名称?
我正在使用Java 7,Spring 4.1.6.RELEASE,Mybatis 3.2.8。而且我完全一无所知
String daoBeanId = "IUserDao";
String methodName = "insertUser";
ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
Object daoInstance = applicationContext.getBean(daoBeanId);
Class daoClass = daoInstance.getClass();
Method method = ReflectUtil.getMethod(daoClass,methodName);
//some code to get this method's parameter names
与“我可以使用Java反射获取方法参数名称吗? ”,因为在mybatis中,dao对象是代理对象,proxy对象似乎没有参数名称信息,因此使这个问题更加复杂和困难
答案 0 :(得分:0)
如果您使用的是Java 8,请查看下面的链接以使用反射获取方法参数名称。
答案 1 :(得分:0)
您可以在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());
}