class Test {
void test(Object o, Integer integer) {
switch (o) {
case String s when integer -> System.out.println();
default -> {}
}
switch (o) {
case String s when isBool() -> System.out.println();
default -> {}
}
switch (o) {
case Integer i when isInt():
break;
default:
break;
}
switch (o) {
case Integer i when null:
break;
default:
break;
}
boolean flag1;
switch (o) {
case Integer i when flag1 -> System.out.println(1);
default -> System.out.println(0);
}
boolean flag2;
switch (o) {
case Double d when 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);
public static void main2(Object o) {
int x = switch (o) {
case Object _, String _ when o == o -> 4;
case Integer _ -> 2;
default -> 3;
};
}
}