Java · Avançado · Inglês · Técnico
record pattern
Padrão que desmonta um record direto no instanceof ou no switch, extraindo seus componentes em variáveis, inclusive aninhados, desde o Java 21.
Onde usar
Aparece em código que processa estruturas de dados algébricas, como linhas feitas de pontos. Evita acessores em cadeia.
Em código
record Ponto(int x, int y) {}
record Linha(Ponto a, Ponto b) {}
Object o = new Linha(
new Ponto(0, 0), new Ponto(3, 4));
if (o instanceof Linha(Ponto(var x, var y),
var b)) {
System.out.println(b.x() - x); // 3
}Exemplos
Use a record pattern to unpack the point right in the if.
Use um record pattern para desmontar o ponto direto no if.
Nested record patterns replace a chain of accessors.
Record patterns aninhados substituem uma cadeia de acessores.
Cuidado
Só funciona com records; para classes comuns ainda é preciso chamar getters.
Sinônimos
padrão de record