No dotnet por exemplo é muito comum usar o AutoMapper para fazer mapeamento entro objetos. Pelo que vi, aqui no java ele ja tem essa função nativa chamada .map que faz isso automaticamente?
No dotnet por exemplo é muito comum usar o AutoMapper para fazer mapeamento entro objetos. Pelo que vi, aqui no java ele ja tem essa função nativa chamada .map que faz isso automaticamente?
Olá, Rodolfo
A sua pergunta é muito interessante. No mundo Java, existem várias maneiras de mapear objetos, mas a função .map
que você mencionou não é nativa do Java para fazer o mapeamento de objetos como o AutoMapper faz no .NET. A função .map
é usada em Streams no Java para transformar um objeto em outro, mas não é a mesma coisa que o mapeamento de objetos que o AutoMapper faz.
No entanto, existe uma biblioteca chamada ModelMapper que é similar ao AutoMapper do .NET e pode ser usada para mapear objetos de DTO (Data Transfer Object) para entidades e vice-versa.
Por exemplo, se você tem uma entidade Medico
e um DTO MedicoDTO
, você pode usar o ModelMapper para mapear uma para a outra assim:
ModelMapper modelMapper = new ModelMapper();
MedicoDTO medicoDTO = modelMapper.map(medico, MedicoDTO.class);
E o inverso também é possível:
Medico medico = modelMapper.map(medicoDTO, Medico.class);
Espero ter ajudado e bons estudos!
Opa, obrigado pela resposta. e qual voce usuaria para transformar esses objetos em java? voce usuaria a biblioteca ModelMapper ou a função .map?
A função .map é mais apropriada quando você está trabalhando com Streams em Java e deseja transformar uma coleção de objetos em outra coleção de objetos, aplicando uma função de mapeamento a cada elemento. Se você está apenas transformando objetos dentro de uma coleção, a função .map pode ser suficiente. No entanto, se você está fazendo mapeamentos mais complexos entre objetos, especialmente entre DTOs e entidades, o uso da biblioteca ModelMapper ou de uma alternativa semelhante é geralmente uma escolha mais adequada, pois facilita a manutenção e a personalização de mapeamentos.
obrigado