2

次のコードを使用してメソッド入力パラメーターを取得していますが、間違ったパラメーターを取得しています。たとえば、set salaryの場合、タイプ(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

パラメータタイプは取得できますが、パラメータは取得できません。これらは、この時点では不透明なメソッド内以外では重要ではありません。 パラメータ名ではなく、typesgetDeclaredFields()のフィールドを返します。

そのようなメソッドを呼び出すには(あなたの例を使用して)、

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 に答える