FC ConcursosFC Concursos

Questão FC373263

Em uma aplicação, considere a existência de uma classe chamada Advogado com o atributo nome e outra classe AdvogadoDto com o atributo nomeCompleto. Usando MapStruct, uma Analista c

Linguagens de Programação

FCC · 2022

Em uma aplicação, considere a existência de uma classe chamada Advogado com o atributo nome e outra classe AdvogadoDto com o atributo nomeCompleto. Usando MapStruct, uma Analista criou a interface abaixo.

 

..I..
public interface AdvogadoMapper {


     ..II.. (target = "nomeCompleto", source = "nome")
      AdvogadoDto advogadoToAdvogadoDto(Advogado advogado);
}

 

Para que o mapeamento seja realizado corretamente, as lacunas I e II devem ser preenchidas, correta e respectivamente, por

  1. @Mapper e @Mapping
  2. @Mapping e @Equals
  3. @MapStruct e @Mappings
  4. @MapStruct e @Map
  5. @Mapper e @Equity
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

Na solução correta usa‑se @Mapper na declaração da interface para indicar ao MapStruct que deve gerar a implementação concreta do mapper. Essa anotação habilita o processamento e permite, opcionalmente, configurar o componentModel (por exemplo, "spring").

Como os nomes dos campos são diferentes — Advogado.nome e AdvogadoDto.nomeCompleto — é necessário explicitar o mapeamento entre eles com @Mapping.

A anotação @Mapping é aplicada sobre o método de conversão e recebe os atributos source e target, por exemplo: @Mapping(target="nomeCompleto", source="nome").

Resumo: @Mapper na interface para gerar o mapper; @Mapping acima do método para alinhar campos com nomes distintos.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo