Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpEsSw 91 of 147 menu
◀ ▶

Разбор enum в switch в Java

Конструкция switch по значению enum перебирает известные компилятору константы. Если перечислены все члены перечисления, выражение считается исчерпывающим и default можно опустить:

enum PostStatus { DRAFT, PUBLISHED, ARCHIVED }

Разберем константу перечисления в switch и выведем подпись:

static String label(PostStatus status) { return switch (status) { case DRAFT -> "draft"; case PUBLISHED -> "live"; case ARCHIVED -> "archive"; }; } System.out.println(label(PostStatus.PUBLISHED));

Выражение switch может возвращать значение в переменную. Для enum с полным набором веток тип результата выводится без default:

PostStatus status = PostStatus.DRAFT; int code = switch (status) { case DRAFT -> 0; case PUBLISHED -> 1; case ARCHIVED -> 2; }; System.out.println(code);

Несколько констант можно объединить в одну ветку через запятую, если для них нужен один и тот же результат:

public class Main { static boolean isPublic(PostStatus status) { return switch (status) { case PUBLISHED -> true; case DRAFT, ARCHIVED -> false; }; } public static void main(String[] args) { System.out.println(isPublic(PostStatus.ARCHIVED)); } }

Объявите enum Role с константами GUEST, USER и ADMIN. Напишите метод canEdit(Role role): для ADMIN и USER верните true, для GUEST - false. Вызовите с Role.GUEST и выведите результат.

Объявите enum Role с константами GUEST, USER и ADMIN. Дано:

Role role = Role.USER;

С помощью switch для переменной role запишите в level число: GUEST - 0, USER - 1, ADMIN - 2. Выведите level.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить