A correspondência de padrões é um recurso poderoso introduzido em Java que permite simplificar e aprimorar a legibilidade do seu código. Introduzido inicialmente em Java 14 para verificações de instância e estendido em versões posteriores, a correspondência de padrões permite um código mais expressivo e conciso, reduzindo o clichê.
A correspondência de padrões permite extrair componentes de objetos e aplicar certas condições de maneira concisa. É um recurso que verifica um valor em relação a um padrão e, se a correspondência for bem-sucedida, vincula variáveis do padrão.
Um dos usos mais comuns da correspondência de padrões é com o operador instanceof. Aqui está um exemplo:
public class PatternMatchingExample { public static void main(String[] args) { Object obj = "Hello, World!"; if (obj instanceof String s) { System.out.println("The string is: " s); } else { System.out.println("Not a string"); } } }
Neste exemplo, o operador instanceof não apenas verifica se obj é uma String, mas também o converte em uma String e o vincula à variável s em uma única etapa.
A correspondência de padrões também é usada com expressões switch, aumentando seu poder e flexibilidade. Aqui está um exemplo usando classes seladas:
public sealed class Shape permits Circle, Rectangle, Square {} public final class Circle extends Shape { private final double radius; public Circle(double radius) { this.radius = radius; } public double radius() { return radius; } } public final class Rectangle extends Shape { private final double width, height; public Rectangle(double width, double height) { this.width = width; this.height = height; } public double width() { return width; } public double height() { return height; } } public final class Square extends Shape { private final double side; public Square(double side) { this.side = side; } public double side() { return side; } } public class PatternMatchingWithSwitch { public static void main(String[] args) { Shape shape = new Circle(5); String result = switch (shape) { case Circle c -> "Circle with radius " c.radius(); case Rectangle r -> "Rectangle with width " r.width() " and height " r.height(); case Square s -> "Square with side " s.side(); }; System.out.println(result); } }
Neste exemplo, a expressão switch usa correspondência de padrões para desestruturar os objetos Shape e extrair dados relevantes.
A correspondência de padrões em Java traz um novo nível de expressividade e simplicidade ao seu código. Ao reduzir o padrão e melhorar a legibilidade, ele permite que você escreva programas mais limpos e de fácil manutenção. Esteja você trabalhando com estruturas de dados complexas ou simplesmente tentando agilizar suas verificações de tipo, a correspondência de padrões é uma ferramenta valiosa em seu kit de ferramentas Java.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3