How to fix Bad return type in method reference: cannot convert RecipeIndicatorsDto to R?

awu :

How to fix error below?

Bad return type in method reference: cannot convert RecipeIndicatorsDto to R

thanks guys

public List<RecipeIndicatorsDto> listByUploadTime(LocalDateTime localDateTime) {
    if(localDateTime!=null) {
        QRecipeIndicator qRecipeIndicator = recipeIndicatorRepo.getQEntity();
        QOrder qOrder=orderRepo.getQEntity();
        List<Predicate> predicates = new ArrayList<>();
        predicates.add(qRecipeIndicator.uploadTime.before(localDateTime));
        List<RecipeIndicator> recipeIndicators = recipeIndicatorRepo.find(predicates, new PageRequest(0, 100));
        List<Order> orders=orderRepo.find(null,new PageRequest(0,100));
        return recipeIndicators.stream()
                               .map(DtoFactory::recipeIndicatorsDto)
                               .collect(Collectors.toList());

public static RecipeIndicatorsDto recipeIndicatorsDto(RecipeIndicator recipeIndicator, Order order) { if (recipeIndicator != null&&order!=null) { RecipeIndicatorsDto recipeIndicatorsDto = new RecipeIndicatorsDto(); recipeIndicatorsDto.setVerificationStatus(recipeIndicator.getVerificationStatus());
recipeIndicatorsDto.setUploadTime(recipeIndicator.getUploadTime()); recipeIndicatorsDto.setRemark(order.getRemark()); recipeIndicatorsDto.setUseDays(order.getUseDays());

Eran :

DtoFactory::recipeIndicatorsDto is a method reference to a static method that requires an RecipeIndicator parameter and an Order parameter. Since you are passing it to map of a Stream<RecipeIndicator>, only the RecipeIndicator instance is available.

You can use a lambda expression instead:

.map(recipeIndicator -> DtoFactory.recipeIndicatorsDto(recipeIndicator, qOrder))

I'm not sure which Order instance you want to pass to it. I guessed it might be qOrder.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=104680&siteId=1