java - 从字符串数组调用函数(Java 或 Groovy)

标签 java reflection groovy

在 Java 或 Groovy 中,假设我有一个像这样的字符串数组

myArray = ["SA1", "SA2", "SA3", "SA4"]

我想根据每个字符串调用不同的函数。

class Myclass{
  public static void SA1() {
    //doMyStuff
  }
  public static void SA2() {
    //doMyStuff
  }
  ...etc
}

我希望能够遍历我的数组并调用它们所属的函数,而不必比较字符串或进行 case 语句。例如,有没有一种方法可以执行以下操作,我知道它目前不起作用:

Myclass[myArray[0]]();

或者,如果您有其他建议,我可以构建类似的结构。

最佳答案

在 groovy 中你可以这样做:

Myclass.(myArray[0])()

在 Java 中你可以这样做:

MyClass.class.getMethod(myArray[0]).invoke(null);

关于java - 从字符串数组调用函数(Java 或 Groovy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14023409/

相关文章:

java - 如何将ObjectId序列化为JSON?

java - 安卓| DexClassLoader,ClassNotFound 异常

java - 验证 Java 中反射方法的返回类型和参数

asynchronous - Groovy 的 AsyncHTTPBuilder 不异步执行请求

java - treeMap中entrySet的时间复杂度是多少

java - Android Studio/IntelliJ IDEA 中的包管理

c# - 反射(reflect)接口(interface)的所有属性,包括继承的属性?

java - 使用groovy进行多种数据转换

groovy - Spock 的@Narrative 和@Title 注释

java - 杀死一个在 Java 中使用标志的线程