Код: Выделить всё
package lanta.utils;
import java.util.HashMap;
import java.util.Scanner;
public class MenuConstructor {
public HashMap options;
public int option;
public MenuConstructor(String defaultOption,String... options) {
this.options = new HashMap();
this.options.put(0, defaultOption);
this.option = 1;
for (String option : options) {
this.options.put(this.option, option);
this.option++;
}
}
public MenuConstructor(HashMap options) {
this.options = options;
}
public int getOption(Scanner scanner) {
StringBuilder message = new StringBuilder();
message.append(0 + " - ").append(this.options.get(0));
for(int i = 1; i < this.options.size(); i++){
message.append(" | ").append(i).append(" - ").append(this.options.get(i));
}
System.out.println(message);
System.out.println("Select an option:");
String selection = scanner.nextLine().replaceAll("\\D.*", "");
try {
int selectedOption = Integer.parseInt(selection);
if(options.containsKey(selectedOption)) return selectedOption;
else {
System.out.println("Invalid option, defaulting to 0");
return 0;
}
} catch (NumberFormatException e) {
System.out.println("Invalid number format, defaulting to 0");
return 0;
}
}
}
Есть ли способ переопределить каждый параметр? Я смотрю на проблему неправильно?