2

我使用以下代码获取方法输入参数,但我得到了错误的参数,例如我设置薪水我想获取类型 (double ) 和名称 (salary) 。我在这里想念什么?

public void setSalery(double salery) {
    this.salery = salery;
  }

这是代码

for (Method method : classHandle.getMethods()) {


            Class<?>[] parameterTypes = method.getParameterTypes();

            for (Class<?> class1 : parameterTypes) {

                Field[] declaredFields = class1.getDeclaredFields();
                for (Field field : declaredFields) {
                    System.out.println(field.getName());


            }
4

1 回答 1

3

您可以检索参数类型,但不能检索参数名称。除了在方法中之外,它们没有任何意义,在这一点上对你来说是不透明的。 getDeclaredFields()返回types中的字段,而不是参数名称。

要调用这样的方法(使用您的示例),假设

MyBean b = new MyBean(); // contains method setSalary(double salary)
Method m = ...           // a reference to a Method object for MyBean#setSalary(double salary)
double newSalary = ...;

然后做

m.invoke(b, new Double(newSalary));
于 2013-01-17T07:29:54.340 回答