Blog Formação DEV

O que são Records em Java e como usá-los

Imagine declarar uma classe com apenas uma linha de código e ter tudo pronto para usar! Isso é possível a partir do Java 14, com a utilização dos Records, que trazem imutabilidade e clareza, deixando seu código mais limpo e seguro.
O que são Records em Java e como usá-los
Texto de: Geraldo Daros

Introdução

Em 2020, com a chegada do Java 14, uma nova funcionalidade foi introduzida na linguagem: os Records. Essa adição foi recebida com entusiasmo pela comunidade, ao trazer uma maneira mais simples e concisa de declarar classes, primariamente utilizadas para transportar dados, também conhecidas como classes de valor.

Definição e Propósito

Records são uma forma especial de classe em Java, destinada a simplificar a criação de classes de valor. Uma classe de valor é uma classe usada principalmente para agrupar e transportar dados. Antes dos Records, criar uma classe de valor envolvia a definição manual de campos, construtores, métodos equals(), hashCode(), e toString(). Com Records, esses componentes são gerados automaticamente, reduzindo significativamente a verbosidade do código.

Sintaxe

A declaração de um Record em Java é simples e concisa. Aqui está um exemplo básico de como definir um Record:

public record Person(String name, int age) {} 

Neste exemplo, o Record Person tem dois campos: name e age. O compilador Java gera automaticamente os seguintes componentes para este Record:

  • Um construtor público que aceita todos os campos como parâmetros.
  • Métodos de acesso (getters) para cada campo, são nomeados apenas com o nome do atributo, nesse caso, person.name() seria a forma para acessar o método getter do atributo name.
  • Implementações de equals(), hashCode(), e toString().

Um record não possui construtor sem argumentos e nem setters, o que está de acordo com o seu objetivo de agrupar e transportar dados.

Características e Vantagens

Imutabilidade

Uma das principais características dos Records é que eles são implicitamente finais e imutáveis. Os campos de um Record são finais, o que significa que, uma vez inicializados, seus valores não podem ser alterados. Isso garante que os objetos de Record sejam imutáveis por padrão, promovendo a segurança e a consistência dos dados.

Redução de Código Boilerplate

Antes dos Records, criar uma classe de valor em Java envolvia a escrita repetitiva de código boilerplate. Com Records, o desenvolvedor pode evitar esse esforço, focando apenas nos dados que a classe deve transportar. Isso não apenas economiza tempo, mas também torna o código mais legível e menos propenso a erros.

Exemplo Prático

Vamos pôr a mão na massa e ver como os Records funcionam! Primeiro de tudo, vamos criar um Record Animal:

public record Animal(String name, String species, int age) {} 

Este Record pode ser usado da seguinte forma:

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal("Leo", "Lion", 5);

        // Acessando os campos
        String name = animal.name();
        String species = animal.species();
        int age = animal.age();

        // Imprimindo o Animal
        System.out.println(animal); // Output: Animal[name=Leo, species=Lion, age=5]

        // Comparando Animais
        Animal anotherAnimal = new Animal("Leo", "Lion", 5);
        System.out.println(animal.equals(anotherAnimal)); // Output: true
        System.out.println(animal == anotherAnimal); // Output: false
    }
} 

Neste exemplo, o Record Animal encapsula os dados name, species e age. O uso deste Record demonstra a simplicidade na criação e manipulação de objetos de valor em Java.

Conclusão

Os Records representam um passo significativo na evolução do Java, oferecendo uma maneira moderna e eficiente de trabalhar com classes de valor. Eles reduzem a verbosidade do código, promovem a imutabilidade e melhoram a legibilidade e manutenção do código. Se você ainda não explorou os Records, é um bom momento para começar a utilizá-los em seus projetos Java e aproveitar os benefícios dessa poderosa funcionalidade. Os Records não só simplificam o desenvolvimento, mas também ajudam a escrever código mais limpo e seguro, refletindo as melhores práticas de programação.

Sobre o autor
Cod3r

Cod3r

Com mais de 400 mil alunos, a Cod3r é uma das principais escolas de tecnologia do País. Um de seus produtos mais importantes é a Formação DEV, com objetivo de preparar os profissionais para o mercado.

Ótimo! Inscreveu-se com sucesso.

Bem-vindo de volta! Registou-se com sucesso.

Assinou com sucesso o Blog Formação DEV .

Sucesso! Verifique o seu e-mail para obter o link mágico para se inscrever.

As suas informações de pagamento foram atualizadas.

Seu pagamento não foi atualizado.