← Questões de Programação

Programação · FGV · 2023

Questão comentada de Programação

O desenvolvedor Luís implementou a interface Java ProcessoAB. O ProcessoAB mapeia a conversão de objetos da classe ProcessoA em objetos da classe ProcessoB através da ferramenta MapStruct. O atributo “nome” do ProcessoA corresponde ao atributo “titulo” do ProcessoB. A fim de orientar o correto mapeamento entre atributos de nomes diferentes, Luís recorreu à anotação Java do MapStruct que torna explícitos os nomes dos atributos mapeados. Luís recorreu à anotação do MapStruct:

Gabarito: B

Quando o assunto é MapStruct, pense nele como um tradutor automático de objetos: ele pega um campo de uma classe e encaixa no campo da outra. O detalhe importante aqui é que nem sempre os nomes dos atributos são iguais, e aí você precisa deixar isso explícito para a ferramenta não “chutar”. No caso da questão, o atributo "nome" de ProcessoA deve virar "titulo" em ProcessoB. Para fazer esse mapeamento de um campo específico com nomes diferentes, o MapStruct usa a anotação @Mapping, normalmente dentro de um método anotado com @Mapper. É ela que permite dizer, de forma clara, qual origem vai para qual destino. Então o gabarito é a letra B. A lógica é simples: @Mapper marca a interface do mapper, mas quem declara o pareamento entre atributos é @Mapping. É o tipo de detalhe que a FGV adora cobrar, porque muita gente confunde a anotação da interface com a anotação do mapeamento em si. Em termos práticos, a ideia é algo como source = "nome" e target = "titulo". Sem isso, quando os nomes não coincidem, você deixa a ferramenta sem o mapa da mina.

Continue treinando

Questões relacionadas