DEV Community

Thiago Emidio
Thiago Emidio

Posted on • Edited on

3

Java 17 - Records

Image description

Hoje vamos falar da feature Record. :)

A funcionalidade de record no Java 17 é uma nova adição à linguagem que simplifica a criação de classes de dados imutáveis. Ela combina várias características, como geração automática de campos, geração de construtores e implementações padrão de métodos comuns como equals(), hashCode() e toString(). Records são declarados usando a palavra-chave "record", seguida pelo nome e uma lista de componentes.

Abaixo está um exemplo de declaração simples de um record:



record Pessoa(String nome, int idade) {
 // Corpo do record (opcional)
}


Enter fullscreen mode Exit fullscreen mode

No exemplo acima, declaramos um record chamado "Pessoa" com dois componentes: um campo de string "nome" e um campo de inteiro "idade". O record gera automaticamente um construtor, getters para cada componente e implementações padrão de equals(), hashCode() e toString().
Você pode criar uma instância de um record usando o construtor como qualquer outra classe:



Pessoa pessoa = new Pessoa("Thiago", 35);


Enter fullscreen mode Exit fullscreen mode

Records são imutáveis por padrão, o que significa que seus campos não podem ser modificados depois de inicializados. No entanto, você ainda pode atualizar uma instância de record criando um novo record com valores atualizados usando a palavra-chave "with":



Pessoa pessoaAtualizada = pessoa.withIdade(31);


Enter fullscreen mode Exit fullscreen mode

Nesse exemplo, uma nova instância de record chamada "pessoaAtualizada" é criada com o mesmo nome do record original, mas com a idade atualizada para 31. O método "withIdade()" é gerado automaticamente pelo record.
Records também podem ser usados em declarações de switch:



public String obterDescricaoPessoa(Pessoa pessoa) {
 return switch (pessoa.idade()) {
 case 0 -> "Recém-nascido";
 case 18 -> "Adulto";
 default -> "Desconhecido";
 };
}


Enter fullscreen mode Exit fullscreen mode

Nesse exemplo, o método "obterDescricaoPessoa" recebe um record de pessoa como parâmetro e usa uma declaração de switch para retornar uma descrição com base na idade.

*Conclusão: *
No geral, a funcionalidade de record no Java 17 oferece uma forma conveniente de criar classes de dados imutáveis e com um código de fácil manutenção. Ela melhora a legibilidade do código e reduz o esforço necessário para criar e usar tais classes.

Billboard image

The fastest way to detect downtimes

Join Vercel, CrowdStrike, and thousands of other teams that trust Checkly to streamline monitoring.

Get started now

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay