像在Javascript中一样通过String名称调用Java函数

时间:2017-12-09 21:21:45

标签: javascript java function

假设我定义了这样一个功能:

function helloWorld(e) {
  console.log("Hello " + e);
  return;
}

我怎么能这样称呼它:

String funcName="helloWorld"; 
funcName(e);

在Java中,有一种简单的样式在Javascript中吗?

1 个答案:

答案 0 :(得分:2)

这称为Reflection

import java.lang.reflect.Method;

public class Demo {

  public static void main(String[] args) throws Exception{
      Class[] parameterTypes = new Class[1];
      parameterTypes[0] = String.class;
      Method method1 = Demo.class.getMethod("method1", parameterTypes);

      Demo demo = new Demo();

      Object[] parameters = new Object[1];
      parameters[0] = "message";
      method1.invoke(demo , parameters);
  }

  public void method1(String message) {
      System.out.println(message);
  }

}

取自https://stackoverflow.com/a/4685609/5281806