Могу ли я предложить вам использовать интерфейсы? то, что вы пытаетесь реализовать, известно как функциональное программирование , в котором вы передаете функции в качестве аргумента другим функциям
java поддерживает функциональное программирование с помощью интерфейсов и имеет множество встроенных функций. -в интерфейсах для упрощения процесса
я рекомендую вам взглянуть на java .util.function package
теперь давайте перейдем к вашему коду
public void something(Supplier<Void> function) {
boolean condition = true; //use this boolean to control your loop
while (condition) {
Random myrand = new Random();
int number = myrand.nextInt(10 - 1) + 1;
switch (number) {
case 1:
function.get();
break;
case 2:
function.get();
break;
}
}
}
и вы можете называть свое «что-то», как это
public void Call() {
//if you want to declare the function only once
something(new Supplier<Void>() {
@Override
public Void get() {
System.out.println("the job is done!");
return null;
}
});
// if you already have a class implementing supplier
something(new MyFunction());
}
не тем, что интерфейс поставщика используется, потому что ваша функция не имеет никаких входов, вы также можете использовать Consumer, BiConsumer, Function, BiFunction. ... для функций с входами