class Test { void test(Object o, Integer integer) { switch (o) { case String s && integer -> System.out.println(); default -> {} } switch (o) { case String s && isBool() -> System.out.println(); default -> {} } switch (o) { case Integer i && isInt(): break; default: break; } switch (o) { case Integer i && null: break; default: break; } boolean flag1; switch (o) { case Integer i && flag1 -> System.out.println(1); default -> System.out.println(0); } boolean flag2; switch (o) { case Double d && foo(flag2) -> System.out.println(2); default -> System.out.println(0); } } private native boolean isBool(); private native int isInt(); private native boolean foo(boolean blag); }