Feature Java: Records

Por Gaspar Barancelli Junior em 24 de abril de 2024

Nos últimos anos, o Java tem se esforçado para oferecer recursos que simplifiquem o desenvolvimento, mantendo a eficiência e a robustez. Uma dessas adições recentes é o Java Records, introduzido no Java 14. Java Records é uma nova maneira concisa de declarar classes de dados imutáveis.

O que são Java Records?

Java Records são uma maneira concisa de declarar classes de dados imutáveis. Eles se destinam a ser uma maneira simples e direta de criar classes de dados semelhantes a registros em outras linguagens de programação. Os records foram introduzidos como uma 'preview feature' no Java 14 e promovidos a um recurso permanente no Java 16. Além disso, melhorias nas padronizações do Java Record foram introduzidas como 'preview feature' no Java 19 e Java 20, e promovidas a recurso definitivo no Java 21.

Como usar Java Records?

Usar records em Java é bastante simples. Em vez de escrever longas classes com getters, setters, equals, hashCode e toString, você pode definir um registro em uma única linha. Aqui está um exemplo:

public record Post(String titulo, String conteudo, LocalDateTime dataDePostagem) {}

E pronto! Você tem uma classe de dados imutável com três campos: titulo, conteudo e dataDePostagem. O Java automaticamente fornece um construtor, métodos getters para os campos e também os métodos equals(), hashCode() e toString().

Benefícios de usar Java Records

Concisão

A principal vantagem dos records é a concisão. Em comparação com as classes Java tradicionais, os records exigem muito menos digitação. Em uma única linha, você pode declarar uma classe de dados completa.

Imutabilidade

Os records são imutáveis por padrão. Isso significa que, depois que um record é criado, ele não pode ser alterado. Isso ajuda a evitar efeitos colaterais indesejados e a tornar seu código mais previsível e seguro.

Métodos padrão

Os records fornecem automaticamente métodos equals(), hashCode() e toString(). Isso economiza tempo e reduz erros, eliminando a necessidade de escrever esses métodos manualmente.

Declarativo

Os records são uma maneira declarativa de modelar dados. Eles permitem que você se concentre no que os dados são, em vez de como eles devem ser armazenados e acessados.

Exemplo de Uso

Feature disponível no Java 14

Com base no record criado anteriormente, segue exemplo de como instânciar um novo objeto.

public class Exemplo1 {
    public static void main(String[] args) {
        Post post = new Post("Java Records 14", "Contéudo do post sobre Java Records", LocalDateTime.now());
        System.out.println(post.titulo()); // Java Records
    }
}
Feature disponível no Java 19

Verifica se a variável post é uma instância de Post para então acessar os seus atributos por meio da váriavel p.

public class Exemplo2 {
    public static void main(String[] args) {
        Post post = new Post("Java Records 21", "Contéudo do post sobre Java Records", LocalDateTime.now());

        if (post instanceof Post p) {
            System.out.println("Titulo: " + p.titulo());
            System.out.println("Descrição: " + p.descricao());
            System.out.println("Data: " + p.dataDePostagem());
        }
    }
}

Conclusão

Em resumo, os Java Records representam uma evolução notável no desenvolvimento Java, proporcionando uma abordagem mais concisa e declarativa para modelagem de dados. Ao eliminar a necessidade de escrever manualmente getters, setters, equals, hashCode e toString, os records simplificam significativamente o processo de criação de classes de dados imutáveis. Com os Java Records, o desenvolvimento em Java se torna mais eficiente e direto, oferecendo uma maneira mais intuitiva e simplificada de lidar com dados.

// Compartilhe esse Post

💫
🔥 NOVO APP

Domine o Inglês em 30 dias!

Inteligência Artificial + Repetição Espaçada • Método cientificamente comprovado

✅ Grátis para começar 🚀 Resultados rápidos
×