Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

@AllArgsConstructor e @NoArgsConstructor - Qual o real uso?

Olá,

@AllArgsConstructor e @NoArgsConstructor utilizadas nas classes Medico, Paciente e Endereço. Contudo em tais classes criamos, explícitamente, um construtor. Não seriam estas anotações para evitar a necessidade de especificar construtor? Qual seria, então, a real função de tais anotações?

Obrigado!

3 respostas

Fala Vinicius, tudo certo?

Perfeito, essas anotações servem para que não precisemos criar os construtores, o próprio Lombok faz isso pra gente!

A anotação @NoArgsConstructor cria para a gente aquele construtor padrão, que não recebe nenhum argumento

public Medico(){}

Assim, garantimos que nossa classe tenha esse construtor, que a JPA exige que mantenhamos nas nossas entidades, para manipulação da classe via JPA.

E a anotação @AllArgsConstructor cria um construtor que recebe como parâmetros todos os atributos da classe:

public Medico(String nome,String email, String crm, Especialidade especialidade, Endereco endereco){
    this.nome = nome;
    this.email = email;
    this.crm = crm;
    this.especialidade = especialidade;
    this.endereco = endereco;
}

Ou seja, funciona para inicializarmos o objeto quando criarmos uma instância da classe. Note que o atributo Long id não entra nesse construtor, pois ele é administrado pelo banco de dados via anotação @Id @GeneratedValue(strategy = GenerationType.IDENTITY);

No entanto, quando precisamos de algum outro construtor, é necessário ainda escrevê-lo manualmente. Elas servem apenas para eliminar a necessidade dos contrutores citados! Para entender mais, sugiro a leitura da documentação do Lombok sobre construtores, que está em inglês mas caso seja necessário voce pode utilizar a ferramenta de tradução do seu navegador para facilitar o entendimento!

Fico à disposição.

Um grande abraço e bons estudos!

solução!

ola Vinicius vou lhe dar minha opinião, os contrutores que fez é sempre passardo parametros externos, já o uso dessas anotações sao para criarem costrutores com argumentos da propria classe, o vazio e os com argumentos e eles sao exigencias de uso para algumas dependencias !

Vlw, rapaziada! Vcs foram 10. As respostas se complementaram e ficou claro. Abc!