mercredi 12 avril 2017

Java invoke method using reflection

I am trying to invoke a method using reflection. The method I am invoking is non static and in the same class I am invoking it from. A simplified version of my code:

public class Test {
  public static void main(String[] args) {
    Test instance = new Test();
    if (args.length > 0) {
      instance.doWork(args[0]);
    }
  }

  private void doWork(String methodName) {
    Method method;

    try {
      method = this.getClass().getMethod(methodName);
      method.invoke(this);
    } catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
      [...]
    }
  }

  private void MethodOne() { ... };
  private void MethodTwo() { ... };
  [...]
  private void MethodTwenty() { ... };
}

What I am getting is a java.lang.NoSuchMethodException: correct.package.and.class.MethodTwo() despite the package / class / method existing.

Can someone tell me what I am doing wrong?





Aucun commentaire:

Enregistrer un commentaire