如何用反射得到方法参数的名字(其他方法也可)
public class BookController
{
public void init(String name,Integer age)
{
}
public static void main(String[] args)throws Exception
{
Class clazz = BookController.class;
Method[] methods = clazz.getMethods();
for(Method method : methods)
{
String name = method.getName();
if(name.equals("init"))
{
Class[] carray = method.getParameterTypes();
for(Class cla : carray)
{
System.out.println(cla.getSimpleName());
}
}
}
}
}
控制台输出的结果是:
String
Integer
我不光要这些参数类型,我还要参数的名字name,age
这两个参数的名字,请问,如何得到。
如果这个方法是这样的public void init(String userName,Integer userAge)
那得到的就是userName,userAge
请问,该如何的到这些参数
谢谢。。。
[解决办法]
JAVA获取方法参数名的分析(一)
JAVA获取方法参数名的分析(二)
这两篇文章 也许对你会有帮助
[解决办法]
这个好像不能直接获取吧,不过可以曲线救国
比如在public void init(String userName,Integer userAge)之前加一个 Annotation定义,
并且在 Annotation中写入你的init方法的参数,然后再执行这个方法的时候先读取 Annotation就可以了
Annotation的用法可以google一下啦
不过你的用途是什么呢?
[解决办法]
获取参数名字意义何在?
[解决办法]
别费这事了,没有简单有效的方法。你用Eclipse也不是所有的函数参数名都能显示。
[解决办法]