Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Call a function from a string array (Java or Groovy)

In Java, or Groovy, say I have a String array like

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

I want to call a different function based off of each string.

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

I would love to be able to loop through my array and call the functions that they pertain to without having to compare the string or make a case statement. For example is there a way to do something like the following, I know it doesn't currently work:

Myclass[myArray[0]]();

Or if you have suggestions of another way I can structure something similar.

like image 429
Kyle Weller Avatar asked Feb 19 '23 01:02

Kyle Weller


1 Answers

In groovy you can do:

Myclass.(myArray[0])()

In Java you can do:

MyClass.class.getMethod(myArray[0]).invoke(null);
like image 91
micha Avatar answered Feb 21 '23 08:02

micha