我使用以下代码来获取方法输入参数,但是我得到了错误的参数 例如我为设定工资我想得到类型(双)和名称(工资)。 我想念的是什么?
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());
}
答案 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));