新版本的变更 / Java 21

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);