Boa noite!
Verificando o método orElseThrow , dentro da classe Optional temos o seguinte :
public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {
if (value != null) {
return value;
} else {
throw exceptionSupplier.get();
}
}
Minha dúvida seria :
Supllier é uma interface funcional (possui apenas um único método abstrato) sem retorno (do tipo void).
Gostarei de entender o por quê ao invés colocar
.orElseThrow(() -> new RuntimeException("Método não encontado"));
eu não posso colocar
.orElseThrow(() -> new Produto);
d`
Como que eu consigo enxergar que um tipo de retorno está sendo passado para esse consummer?