У меня есть следующий перечислителя:Как получить значение из перечисления без переменных
public enum UserChoice {
QUIT, LIST_BOOKS, CHECKOUT_BOOK, RETURN_BOOK, LIST_MOVIES,
CHECKOUT_MOVIE, RETURN_MOVIE, USER_INFORMATION
}
, и я хотел бы использовать его в распределительном заявлении, который принимает Int в качестве параметра. Тем не менее, мне нужно, чтобы получить ИНТ значение перечисления, так что я делаю это:
try {
int option = Reader.getUserOption();
} catch (InputMismatchException ex) {
option = 8;
}
switch (option) {
case UserChoice.QUIT.ordinal():
break;
case UserChoice.LIST_BOOKS.ordinal():
Printer.printBooks(library);
break;
case UserChoice.CHECKOUT_BOOK.ordinal():
// code
break;
case UserChoice.RETURN_BOOK.ordinal():
// code
break;
case UserChoice.LIST_MOVIES.ordinal():
Printer.printMovies(library);
break;
case UserChoice.CHECKOUT_MOVIE.ordinal():
// code
break;
case UserChoice.RETURN_MOVIE.ordinal():
// code
break;
case UserChoice.USER_INFORMATION.ordinal():
System.out.println(currentUser);
break;
default:
Printer.printInvalidOptionMessage();
break;
}
Есть ли способ бросить Int в значение перечисления или кто я могу добиться этого с помощью перечислений. В конце концов, я хочу указать имя нумератора для каждого случая, чтобы я мог четко понимать, что делает каждый случай, потому что ранее я использовал значения int для этого.
В конце концов, то, что я сделал после @Darth Android, @ Xoce и @Jim Garrison ответы меняется от 'int' до' UserChoice', поэтому 'UserChoice option = UserChoice.values () [Reader.getUserOption() ]; 'и установите опцию' INVALID_OPTION' (новое значение, добавленное в перечисление) в блоке catch. – lmiguelvargasf