Это делается с помощью переменной функции типа Runnable
и ее метода Runnable#run
.
Scratch s = new Scratch();
List<Runnable> methods = new ArrayList<>();
methods.add(s::meth1); // This is how you reference a method itself.
methods.add(s::meth2);
...
methods.get(1).run(); // This is how you tell the runnable to execute its code.
Абстрактный метод run
- это переопределен имеющимся у вас кодом, таким образом, это «ссылка» для вызова вашего метода. В пакете java.util.function
вы можете найти множество классов, которые можно использовать для случая, когда ваш метод имеет параметр или / и возвращает.
Редактировать (Спасибо @ Наман)
Вызов случайного метода из списка теперь тривиален следующим образом.
int randomNumber = new Random().nextInt(methods.size());
methods.get(randomNumber).run();