我正在使用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/

10-11 06:26