Object value = 42;
// *** before: ***
// switch worked on numbers, enums and strings only, so a check by type
// was a chain of ifs:
String text1;
if (value instanceof Integer i) {
text1 = "int " + i;
} else if (value instanceof String s) {
text1 = "string of " + s.length();
} else if (value == null) {
text1 = "nothing";
} else {
text1 = "something else";
}
// *** in version 21: ***
String text2 = switch (value) {
case Integer i -> "int " + i;
case String s -> "string of " + s.length();
case int[] arr -> "array of " + arr.length;
case null -> "nothing";
default -> "something else";
};
System.out.println(text1);
System.out.println(text2);