Java 21 с JEP 411 pattern matching for switch
Има 3 топ предложения за Java 21, който определено трябва да се видят.
Първото, за което може би сте чували е :
JEP 441: Pattern Matching for switch с две думи може и да почнем да ползваме switch-ове в скоро време ;)
Пример
// As of Java 21
static String example(Object obj) {
return switch (obj) {
case Integer i
-> String.format("int %d", i);
case Long l
-> String.format("long %d", l);
case Double d
-> String.format("double %f", d);
case String s
-> String.format("String %s", s);
default
-> obj.toString();
};
}
или може да има и стойности и null
// As of Java 21
static void example(String s) {
switch (s) {
case null
-> System.out.println("Oops");
case "Foo", "Bar"
-> System.out.println("Great");
default
-> System.out.println("Ok");
}
}
А може да филтрираме по тип и да
дофилтрираме по стойност с when
// As of Java 21 sealed interface CardClassification
permits Suit, Tarot {} public enum Suit implements
CardClassification
{ CLUBS, DIAMONDS, HEARTS, SPADES }
final class Tarot
implements CardClassification {}
static void
exhaustiveSwitch(CardClassification c) {
switch (c) {
case Suit s when s == Suit.CLUBS -> {
System.out.println("It's clubs");
}
case Suit s when s == Suit.DIAMONDS -> {
System.out.println("It's diamonds");
}
case Suit s when s == Suit.HEARTS -> {
System.out.println("It's hearts");
}
case Suit s -> {
System.out.println("It's spades");
}
case Tarot t -> {
System.out.println("It's a tarot");
}
}
}
Тая Java не е оная Java,
ако искате повече примери да видите
мотивацията и етц цъкнете на линка горе