import java.util.*;
class Test {
void testEnumRechable1(Day d) {
switch (d) {
case MONDAY, TUESDAY:
throw new IllegalArgumentException();
default:
break;
}
System.out.println();
}
void testEnumUnreachable2(Day d) {
switch (d) {
case Day dd when true:
throw new IllegalArgumentException();
}
System.out.println();
}
void testSealedClassReachable1(I i) {
switch (i) {
case First f:
throw new IllegalArgumentException();
case Second s:
break;
}
System.out.println();
}
void testSealedClassReachable2(I i) {
switch (i) {
case First f:
throw new IllegalArgumentException();
case Second s:
throw new IllegalArgumentException();
}
System.out.println();
}
void testSealedClassUnreachable1(I i) {
switch (i) {
case Object o:
throw new IllegalArgumentException();
}
System.out.println();
}
}
enum Day {
MONDAY, TUESDAY, WEDNESDAY
}
sealed interface I {}
final class First implements I {}
final class Second implements I {}