0% acharam este documento útil (0 voto)
23 visualizações6 páginas

Entendendo Records em Java: Imutabilidade e Uso

Os RECORDS são uma nova forma de declarar classes imutáveis no Java, úteis para representar dados como entidades de banco de dados. Com RECORD, a declaração de campos e métodos como construtores, getters, equals, hashCode e toString é simplificada em uma única linha. Eles são recomendados para objetos que carregam apenas dados, mas não devem ser usados quando a lógica adicional ou mutabilidade é necessária.

Enviado por

keidsondesigner
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
23 visualizações6 páginas

Entendendo Records em Java: Imutabilidade e Uso

Os RECORDS são uma nova forma de declarar classes imutáveis no Java, úteis para representar dados como entidades de banco de dados. Com RECORD, a declaração de campos e métodos como construtores, getters, equals, hashCode e toString é simplificada em uma única linha. Eles são recomendados para objetos que carregam apenas dados, mas não devem ser usados quando a lógica adicional ou mutabilidade é necessária.

Enviado por

keidsondesigner
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 6

Isaque Ferreira

@isaquescheidegger

RECORDS
Isaque Ferreira
@isaquescheidegger

O que são RECORDS?


Os Records são uma nova forma de declarar
classes no Java.

Elas são imutáveis por padrão, o que significa


que não podemos alterar seus valores após a
criação do objeto

Eles são bastante úteis para representar


dados, como, por exemplo, uma entidade de
banco de dados.
Isaque Ferreira
@isaquescheidegger

Sem RECORD:
public class Produto {
{

private final int id;

id;

private final String nome;


nome;

private final double preco;

preco;

Construtor

// Construtor

public Produto(int id, String nome, double preco) {


Produto(int {

this.id = id;
this.id id;

this.nome = nome;

this.nome nome;

this.preco = preco;
this.preco preco;

Getters

// Getters

public int getId() { return id; }

public String getNome() { return nome; }

public double getPreco() { return preco; }

toString

// toString

@Override

@Override

public String toString() {

return "Produto{id="
"Produto{id=" +
+ id
id +
+ ",
", nome='"
nome='" +
+ nome
nome +
+ "',
"', preco="
preco=" +
+
preco +
preco + "}"
"}";

// equals
// equals e e hashCode

hashCode

@Override

@Override

public boolean equals


equals(Object
(Object o) {

if (this == o) return true


(this true;

if (o == null || getClass() != o.getClass()) return false


false;

Produto produto = (Produto) o;

o;

return id == produto.id && Double.compare(produto.preco, preco)


== 0 && nome.equals(produto.nome);

nome.equals(produto.nome);

@Override

@Override

public int hashCode


hashCode()
() {

return Objects.hash(id, nome, preco);

preco);

Isaque Ferreira
@isaquescheidegger

Com RECORD:
public record Produto(int id, String nome, double preco) {}
Isaque Ferreira
@isaquescheidegger

Sem RECORD:
Declaração dos campos → Construtor → Getters →
Métodos equals, hashCode, toString.

Com RECORD:
Apenas uma declaração → Pronto!
Isaque Ferreira
@isaquescheidegger

Quando usar
Objetos que carregam apenas dados,
como DTOs
Configurações imutáveis ou
mapeamentos de tabelas simples

Quando NÃO usar


Classes que precisam de lógica
adicional além de carregar dados
Objetos que devem ser mutáveis.

Você também pode gostar