Record — dados imutáveis
public record Ponto(int x, int y) {}Gera construtor, acessores, equals, hashCode e toString. Substitui o POJO de 60 linhas.
cheat/moderno
Recursos que encolhem código cerimonial.
public record Ponto(int x, int y) {}Gera construtor, acessores, equals, hashCode e toString. Substitui o POJO de 60 linhas.
public record Idade(int valor) {
public Idade {
if (valor < 0) throw new IllegalArgumentException("negativa");
}
}String rotulo = switch (dia) {
case SAB, DOM -> "fim de semana";
default -> "útil";
};if (obj instanceof String s && !s.isBlank()) {
System.out.println(s.strip());
}String json = """
{ "nome": "Ana" }
""";return repo.buscar(id)
.map(Pessoa::nome)
.orElseThrow(() -> new NaoEncontrado(id));Optional é para RETORNO. Como campo ou parâmetro só acrescenta uma camada de nulo.