Questão nº 32
Questão de Desenvolvimento de Sistemas · FCC TRT15 2023 (nº 32)
Em uma aplicação Java que utiliza MapStruct, em condições ideais, um usuário tem uma classe chamada `Processo` e uma chamada `ProcessoDto`. Deseja criar uma interface MapStruct chamada `ProcessoMap` para mapear de `ProcessoDto` para `Processo` e vice-versa. Essa interface deve ser anotada, imediatamente antes de sua declaração, com
- A`@Map(type="MapStruct")`
- B`@Mapping`
- C`@MapStruct`
- D`@Mapper` (alternativa correta)
- E`@InterfaceMapper`
Resposta comentada
Gabarito Alternativa D
MapStruct é uma biblioteca que automatiza a criação de código para converter (mapear) objetos de um tipo para outro, usando uma interface que você define para descrever as regras de mapeamento. Para que o MapStruct reconheça essa interface e gere a implementação, ela precisa ser marcada com uma anotação específica.
(A) Incorreta: Não existe uma anotação `@Map(type="MapStruct")` no MapStruct para declarar uma interface de mapeamento.
(B) Incorreta: A anotação `@Mapping` é usada dentro de um método de mapeamento para configurar como campos específicos devem ser mapeados (ex: `@Mapping(source = "origem", target = "destino")`), e não para declarar a interface do mapper. A armadilha da banca aqui é usar uma anotação que existe no MapStruct, mas para uma finalidade diferente, confundindo o aluno.
(C) Incorreta: Não existe uma anotação `@MapStruct` para declarar uma interface de mapeamento.
(D) Correta: A anotação `@Mapper` é a anotação fundamental do MapStruct que identifica uma interface como um componente de mapeamento, instruindo o processador de anotações a gerar a implementação em tempo de compilação.
(E) Incorreta: Não existe uma anotação `@InterfaceMapper` no MapStruct para declarar uma interface de mapeamento.
Fonte: FCC TRT15 2023 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 002). Reproduzida para fins de estudo.