public class UnnamedPatterns { record R(int a, int b) {} void test(Object obj) { if (obj instanceof _) {} if (obj instanceof R(_, _)) {} if (obj instanceof R(int a, _)) { System.out.println(a); } if (obj instanceof R(_, int b)) { System.out.println(b); } if (obj instanceof R(_, _, _)) { } } void testSwitch(Object obj) { switch (obj) { case R(_, var b) -> { } case R(var c, var b) -> { } case R(int a, _) -> { } default -> { } } } void testExhaustiveness(I a) { boolean r3 = switch (a) { case R1(_) -> true; case R2(_) -> false; }; } void testNonExhaustiveness(I a) { boolean r3 = switch (a) { case R1(_) -> true; }; } sealed interface I {}; record R1(int n1) implements I {}; record R2(int n1) implements I {}; }