Unexcepted valor de retorno cuando se utiliza la función lamba ifPresentOrElse

mengmeng:

Me parece que no puede averiguar por qué estoy recibiendo este error en el IDE Unexpected return valuecuando necesito devolver algo de un método cuando se utiliza lambda.

public Employee getEmployee(long id) {
repository.findById(id).ifPresentOrElse(
                empDetails -> {
                    return service.buildEmployee(empDetails);
                },
        () -> { throw new ResourceNotFoundException(); }
        );

}

¡Gracias!

Eran :

ifPresentOrElse​se utiliza para consumir el Optionalvalor 's si está presente, y para llevar a cabo alguna otra lógica de otra manera. No se puede utilizar para devolver un valor o una excepción.

En su lugar se puede combinar mapcon orElseThrow:

public Employee getEmployee(long id) {
    return repository.findById(id)
                     .map(service::buildEmployee)
                     .orElseThrow(ResourceNotFoundException::new);
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=293083&siteId=1
Recomendado
Clasificación