我正在使用 paranamer.jar 来获取方法的参数名称。但它没有获取任何参数名称。
Class c = Class.forName("com.soa1.MyClass");
Class[] argTypes = { java.lang.String.class };
Method method=ABC.class.getMethod("getData",argTypes);
Paranamer paranamer = new CachingParanamer();
String[] parameterNames = paranamer.lookupParameterNames(method,false);
最佳答案
参数名称是否来自某个地方?根据ParaNamer的文档,它使用了几种方式来获取参数名称:
- 通过
__PARANAMER_DATA
字段。显然,只有当你的类有这样的字段时,这才有效。 - 通过
.class
文件中的调试信息。显然,只有当您的类使用调试信息进行编译时,这才有效。 - 通过
@Named
注释。显然,只有当您的方法参数包含这样的注释时,这才有效。
如果这些都不适用于您的类,那么抱歉,参数名称将不可用。
关于java - Paranamer 不返回参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17203980/