如何从java类中获取方法参数名称?

时间:2010-06-30 16:19:11

标签: java parameters

只解析java源文件?

还是有其他解决方案?

4 个答案:

答案 0 :(得分:2)

发现paranamer项目可以解决这个问题。

用例:

   Method method = Foo.class.getMethod(...);
   Paranamer paranamer = new CachingParanamer();
   String[] parameterNames = paranamer.lookupParameterNames(method) 

项目主页:http://paranamer.codehaus.org

答案 1 :(得分:1)

解析javadocs可能是最好的选择,假设你有这些。

如果你不这样做,那就是java源代码。如果你没有java源代码或javadocs,那就太幸运了。

答案 2 :(得分:1)

我不确定我是否理解你的问题...如果你的问题更长,并且会告诉你你想做什么,会更容易给出答案。

编译的类文件可能包含参数名称,但通常它们不包含参数名称,对于它们从不执行的接口。有关它的更多信息,请参阅我的问题Preserving parameter/argument names in compiled java classes和众多的激光器。

答案 3 :(得分:1)

我相信您可以从javac(JDK5中的apt)中的注释解析器获取信息。

如果您只有类文件,那么他们需要包含调试信息以包含参数名称。然后我想你可以用ObjectWeb的ASM解析类文件。