1

我想获取包外接口的方法的参数名称。

看起来 LocalVariableTableParameterNameDiscoverer 只能获取本地类的方法的参数名称。它不获取包外接口的方法的参数名称。

请帮忙

  private LocalVariableTableParameterNameDiscoverer namer =new  LocalVariableTableParameterNameDiscoverer();


           Class currentClass = Class.forName("com.soa.process.bpel.runtime.script.ScriptedAlertReporter");
               methods=currentClass.getDeclaredMethods();
               for (int j = 0; j < methods.length; j++)
               { 

                       method=currentClass.getMethod(methods[j].getName(),methods[j].getParameterTypes()); 
                       parameterNames = namer.getParameterNames(method);
                       if(parameterNames!=null && parameterNames.length>0)
                       {

                       }
                }
4

1 回答 1

0

与接口是否在任何包之外无关。LocalVariableTableParameterNameDiscoverer 通过检查 Java 编译器生成的调试信息来工作。不幸的是,此调试信息不​​包括接口方法的参数名称。

Java 8 允许您通过反射访问接口参数名称,或者如果您使用较早的 Java 版本,您可以尝试Paranamer

于 2014-06-19T22:25:44.760 回答