Чтобы сделать его легко обслуживаемым, все 4 класса должны реализовывать общий интерфейс.Runnable
в этом примере, где метод run()
является точкой входа в класс.В этом примере у меня есть только 2 класса, но вы можете легко расширить его, добавив элементы в массив runnables
:
import java.util.Scanner;
import java.util.stream.IntStream;
public class Menu {
public static void main(String[] args) {
Runnable [] runnables = { new M1(), new M2() };
IntStream.range(0, runnables.length)
.forEach(i -> System.out.println(i + " " + runnables[i].getClass().getSimpleName()));
Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();
if (choice >=0 && choice < runnables.length) {
System.out.println("Your choice: " + runnables[choice].getClass().getSimpleName());
runnables[choice].run();
}
}
public static class M1 implements Runnable {
@Override
public void run() {
System.out.println("I choose to run M1");
}
}
public static class M2 implements Runnable {
@Override
public void run() {
System.out.println("M2 was chosen this time...");
}
}
}
Пример вывода:
0 M1
1 M2
0
Your choice: M1
I choose to run M1