Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

413
Visualizações
El mapa de primavera de Java no puede inferir la variable de tipo R

He buscado durante mucho tiempo y no puedo encontrar una manera de resolver este problema. En mi aplicación de primavera tengo un BesoinPoseMapper

 @FunctionalInterface @Mapper(uses = BesoinPoseTranslator.class) public interface BesoinPoseMapper { @Mappings({ @Mapping(target = "nbCapteurs", source = "valeur", qualifiedByName = {"BesoinPoseTranslator", "nbCapteurs"}), @Mapping(target = "typologie", source = "typologie", qualifiedByName = {"BesoinPoseTranslator", "typologie"}), @Mapping(target = "site", source = "site", qualifiedByName = {"BesoinPoseTranslator", "emplacement"}) }) BesoinPoseDTO entityToDTO(BesoinPoseEntity entity); }

Para asignar BesoinPoseEntity a BesoinPoseDTO

Sin embargo, la función de mapa en BesoinPoseController

 public class BesoinPoseController { @Setter @Autowired private BesoinPoseRepository besoinPoseRepo; @GetMapping() public List<BesoinPoseDTO> getBesoinsPose(@RequestParam String range, @RequestParam(required = false) String status){ return StreamSupport.stream(besoinPoseRepo.findAll().spliterator(), false) .map(BesoinPoseMapper::entityToDTO) .collect(Collectors.toList()); } }

arroja un error de compilación

 .map(BesoinPoseMapper::entityToDTO); ^ required: Function<? super BesoinPoseEntity,? extends R> found: BesoinPose[...]ToDTO reason: cannot infer type-variable(s) R (argument mismatch; invalid method reference cannot find symbol symbol: method entityToDTO(BesoinPoseEntity) location: interface BesoinPoseMapper) where R,T are type-variables: R extends Object declared in method <R>map(Function<? super T,? extends R>) T extends Object declared in interface Stream

Intenté usar lambdas y cambiar los tipos de iterables a listas y matrices y volver a las secuencias, pero fue en vano, el error persiste. El compilador no puede inferir que el tipo R es BesoinPoseDTO .

Hay alguna forma de arreglar esto ?

Gracias

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Debe crear una instancia de BesoinPoseMapper , en otras palabras, un punto de entrada a la instancia una vez que se genera la implementación de su mapeador de esta manera:

 @Mapper(uses = BesoinPoseTranslator.class) public interface BesoinPoseMapper { BesoinPoseMapper INSTANCE = Mappers.getMapper(BesoinPoseMapper.class); //... }

Ahora en tu componente puedes usar:

 .map(BesoinPoseMapper.INSTANCE::entityToDTO);

o :

 private BesoinPoseMapper besoinPoseMapper = BesoinPoseMapper.INSTANCE; ... .map(besoinPoseMapper::entityToDTO);

Primavera

O porque está usando Spring, puede usar componentModel = "spring" :

 @Mapper(uses = BesoinPoseTranslator.class, componentModel = "spring")

y luego puede inyectar su mapeador en su componente como cualquier componente de resorte, por ejemplo:

 @Autowired private BesoinPoseMapper besoinPoseMapper;

  • 3.2. Mapeo de Composición (experimental)
  • 4.2. Usando la inyección de dependencia
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda