Отказ от ответственности: я не собираюсь говорить, что я самый опытный человек Java.Могут быть более простые способы сделать то, что у меня есть в моих примерах.Но это вопрос о превращении строковой записи в класс Enum, а не в переменную enum.Я пытался объяснить как можно лучше.
Это простая версия того, что я хочу сделать.У меня будет два разных перечисления, и я хочу выбрать одно или другое исходя из того, что хочет пользователь.И пример этого, в коде, будет
public enum Letters {
A, B, C, D, E, ... , X, Y, Z
}
public enum Numbers {
ONE, TWO, THREE, ..., EIGHT, NINE, TEN
}
public static void main(String [] args) {
System.out.println("Enter in you choice, letters (Letters) or numbers(Numbers)");
String entry = "";
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(input);
try {
entry = reader.readLine();
}
catch(Exception e){};
...
}
Я хочу сделать так, чтобы пользователь, если он введет в «Письма», он сможет взять строковый элемент и превратить его в переменнуюссылка на Письма Enum.Эллипсы являются заполнителями для кода.Я хочу в конечном итоге использовать это, чтобы я мог использовать
for (answer n : variable.values()) {
System.out.println(n);
}
вместо
if (answer.equals("Numbers")) {
Numbers n;
for (n : Numbers.values()) {
System.out.println(n);
}
} else {
Letters l;
for (l : Letters.values()) {
System.out.println(l);
}
}
Я пытался сделать
Class<?> c = Class.forName("Letters");
, но это не работает.
В моем примере из реального мира у меня есть 3 файла .java, которые содержат отдельные классы, и перечисление в каждом из них.Есть классы «Сэндвич», «Пиво» и «Чип», и их списки - «Сэндвичи», «Пиво», «Чипсы».Эти классы реализуют интерфейс VendingMachineItem.И, наконец, этот интерфейс является частью пакета vendingMachine.Я не знаю, имеют ли это значение, но это все, что я могу дать.