mirror of
https://github.com/github/codeql.git
synced 2025-12-17 09:13:20 +01:00
140 lines
3.2 KiB
Java
140 lines
3.2 KiB
Java
public class Test {
|
|
|
|
public static void test(Object thing) {
|
|
|
|
switch (thing) {
|
|
case String s -> System.out.println(s);
|
|
case Integer i -> System.out.println("An integer: " + i);
|
|
default -> { }
|
|
}
|
|
|
|
switch (thing) {
|
|
case String s:
|
|
System.out.println(s);
|
|
break;
|
|
case Integer i:
|
|
System.out.println("An integer:" + i);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
var thingAsString = switch(thing) {
|
|
case String s -> s;
|
|
case Integer i -> "An integer: " + i;
|
|
default -> "Something else";
|
|
};
|
|
|
|
var thingAsString2 = switch(thing) {
|
|
case String s:
|
|
yield s;
|
|
case Integer i:
|
|
yield "An integer: " + i;
|
|
default:
|
|
yield "Something else";
|
|
};
|
|
|
|
switch(thing) {
|
|
case String s when s.length() == 3:
|
|
System.out.println("Length 3");
|
|
break;
|
|
case String s when s.length() == 5:
|
|
System.out.println("Length 5");
|
|
break;
|
|
default:
|
|
System.out.println("Anything else");
|
|
break;
|
|
}
|
|
|
|
switch(thing) {
|
|
case String s when s.length() == 3 -> System.out.println("Length 3");
|
|
case String s when s.length() == 5 -> System.out.println("Length 5");
|
|
default -> { }
|
|
}
|
|
|
|
switch((String)thing) {
|
|
case "Const1":
|
|
System.out.println("It's Const1!");
|
|
case "Const2":
|
|
System.out.println("It's Const1 or Const2!");
|
|
break;
|
|
case String s when s.length() <= 6:
|
|
System.out.println("It's <= 6 chars long, and neither Const1 nor Const2");
|
|
case "Const3":
|
|
System.out.println("It's (<= 6 chars long, and neither Const1 nor Const2), or Const3");
|
|
break;
|
|
case "Const30":
|
|
System.out.println("It's Const30");
|
|
break;
|
|
case null, default:
|
|
System.out.println("It's null, or something else");
|
|
}
|
|
|
|
switch(thing) {
|
|
case String s:
|
|
System.out.println(s);
|
|
break;
|
|
case null:
|
|
System.out.println("It's null");
|
|
break;
|
|
case Integer i:
|
|
System.out.println("An integer:" + i);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
switch(thing) {
|
|
case A(B(int x, String y), float z):
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
switch(thing) {
|
|
case A(B(var x, var y), var z):
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
switch(thing) {
|
|
case B(_, _):
|
|
case Integer _, String _, A(_, _) when thing.toString().equals("abc"):
|
|
case Float _:
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
var result = switch(thing) {
|
|
case B(_, _):
|
|
case Integer _, String _, A(_, _) when thing.toString().equals("abc"):
|
|
case Float _:
|
|
yield 1;
|
|
default:
|
|
yield 2;
|
|
};
|
|
|
|
switch ((String)thing) {
|
|
case "a":
|
|
case String _ when ((String)thing).length() == 5:
|
|
case "b":
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
// Test the case where a case falls out of a switch block without a break:
|
|
switch(thing) {
|
|
case String _:
|
|
default:
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
record A(B b, float field3) { }
|
|
record B(int field1, String field2) { }
|