Questão nº 46
Questão de Tecnologia da Informação · FCC TRT22 2022 (nº 46)
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
- A`@Mapper` e `@Mapping` (alternativa correta)
- B`@Mapping` e `@Equals`
- C`@MapStruct` e `@Mappings`
- D`@MapStruct` e `@Map`
- E`@Mapper` e `@Equity`
Resposta comentada
Gabarito Alternativa A
MapStruct é uma ferramenta que gera código para converter (mapear) objetos de um tipo para outro, usando anotações para definir como essa conversão deve acontecer.
- (A) Correta: A anotação
@Mapperé usada para indicar que uma interface é um mapeador MapStruct, e a anotação@Mappingé utilizada para especificar como um campo de origem (source) deve ser mapeado para um campo de destino (target) em um método de mapeamento. - (B) Incorreta:
@Mappingé para mapeamento de campos, não para a interface;@Equalsnão é uma anotação do MapStruct para mapeamento. - (C) Incorreta:
@MapStructnão é a anotação correta para marcar a interface (a correta é@Mapper). A armadilha da banca aqui é usar o nome do framework (MapStruct) para induzir ao erro, quando a anotação real é mais concisa. Embora@Mappingsexista para agrupar múltiplos@Mappings, não é a anotação direta para um único mapeamento como o apresentado. - (D) Incorreta:
@MapStructnão é a anotação correta para a interface;@Mapnão é uma anotação do MapStruct para mapeamento de campos. - (E) Incorreta:
@Equitynão é uma anotação do MapStruct.
Fonte: FCC TRT22 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.