mengmeng:
Me parece que no puede averiguar por qué estoy recibiendo este error en el IDE Unexpected return value
cuando 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 Optional
valor '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 map
con orElseThrow
:
public Employee getEmployee(long id) {
return repository.findById(id)
.map(service::buildEmployee)
.orElseThrow(ResourceNotFoundException::new);
}