Estou confuso com suas definições!!!
Um Record é similar a um JavaBean, possui construtor, atributos e métodos acessores. Mas não precisa definir...
ex. public record Pessoa(String firstName, String lastName,){}
Temos uma classe é imutável. (Não entendi o pq ter uma classe imutável) Isso quer dizer que ele internamente uma JavaBean.....Sem a possibilidade de alterar("Não há possibilidade de apenas criar os métodos de leitura.... internamente irá criar construtor, atributos, métodos acessores, métodos equals, hashCode e toString() )
Já o Lombok é uma biblioteca Java que permite criar um código Java utilizando anotações que permitem substituir a criação de getters e setters, métodos equals, builders e entre outros. Ou seja tenho um certo controle sobre a Classe, pois posso dizer quem será os atributos que serão de leitura e de escrita por exemplo.... coisa que não tenho como fazer no record.... é isso????
Ex. import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date;
@AllArgsConstructor @NoArgsConstructor @Data public class Pessoa { private Long id; private String firstName; private String lastName; private Date birthDate;}
São muitas dúvidas!!!!