Dopasowanie wzorców dla instanceof
Połącz sprawdzanie typu i rzutowanie w jednym kroku za pomocą dopasowania wzorców.
Porównanie kodu
✕ Java 8
if (obj instanceof String) {
String s = (String) obj;
System.out.println(s.length());
}
✓ Java 16+
if (obj instanceof String s) {
IO.println(s.length());
}
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Brak redundantnego rzutowania
Sprawdzenie typu i powiązanie zmiennej odbywają się w jednym wyrażeniu.
Mniej linii
Jedna linia zamiast dwóch — linia z rzutowaniem znika całkowicie.
Bezpieczeństwo zakresu
Zmienna wzorca jest w zakresie tylko tam, gdzie typ jest gwarantowany.
Stare podejście
instanceof + rzutowanie
Nowoczesne podejście
Zmienna wzorca
Od JDK
16
Poziom trudności
Początkujący
Wsparcie JDK
Dopasowanie wzorców dla instanceof
Dostępne
Szeroko dostępne od JDK 16 (marzec 2021)
Jak to działa
Dopasowanie wzorców dla instanceof eliminuje redundantne rzutowanie po sprawdzeniu typu. Zmienna jest automatycznie ograniczona do zakresu, w którym wzorzec pasuje, co sprawia, że kod jest bezpieczniejszy i krótszy.
Powiązana dokumentacja
Dowód