0%
Os records: classes de dados sem código gerado

Os records

Trocar cem linhas geradas por uma declaração de uma linha, e saber quando evitar.

10-15 min

Os records: classes de dados sem código gerado

Abra qualquer projeto Java 8 e procure uma classe Point, Endereco ou LinhaPedido. Você vai encontrar três campos úteis afogados em cento e vinte linhas que ninguém escreveu à mão: um construtor, seis getters, um equals gerado pela IDE, um hashCode correspondente, um toString. Esse código não expressa nada. Mesmo assim, ele é versionado, revisado em code review e, pior, mente assim que se adiciona um quarto campo sem regenerar o equals. O bug que resulta disso — dois objetos idênticos que o HashMap trata como diferentes — está entre os mais demorados de diagnosticar, porque o código defeituoso parece correto.

Um record elimina esse risco eliminando o código. Você declara a lista de componentes; o compilador produz o resto e o regenera automaticamente no dia em que você adicionar um campo. Não é apenas uma economia de digitação: é uma declaração de intenção. Um record diz a quem lê o código que aquele objeto é um dado transparente e imutável, inteiramente definido por seus componentes, e não um objeto com comportamento cuja identidade importa.

Comentários

Os comentários são alimentados pelo GitHub Discussions

Conecte-se com o GitHub para participar da discussão

Link copiado!