获取方法输出参数参数

时间:2013-01-17 07:22:17

标签: java reflection

我使用以下代码来获取方法输入参数,但是我得到了错误的参数 例如我为设定工资我想得到类型(双)和名称(工资)。 我想念的是什么?

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());


            }

1 个答案:

答案 0 :(得分:3)

您可以检索参数 types ,但不能检索参数 names 。它们在方法中没有任何意义,在这一点上,对你来说是不透明的。 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));