Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

oq esse retorno significa?

alguém poderia me esclarecer o código da penúltima aula?

return () -> {... código omitido
}
3 respostas

o código completo é esse:

@Controller
@RequestMapping("/pagamento")
@Scope(value=WebApplicationContext.SCOPE_REQUEST)
public class PagamentoController {

    // codigo suprimido
    @RequestMapping(value="/finalizar", method=RequestMethod.POST)
    public Callable<ModelAndView> finalizar(RedirectAttributes model){
        return () -> {
            try {
                  // codigo suprimido

                enviaEmailCompraProduto();

                // codigo suprimido

                return new ModelAndView("redirect:/produtos");
            } catch (HttpClientErrorException e) {
                // codigo suprimido
            }
        };
    }
}
solução!

OI VInicius, onde há // codigo omitido é onde não há mudaças no código em relação as aulas anteriores. O código na integra você pode encontrar aqui:

https://github.com/alura-cursos/springmvc-2-integracao-cache-seguranca-e-templates/blob/master/casadocodigo/src/main/java/br/com/casadocodigo/loja/controllers/PagamentoController.java

Se sua dúvida for o trecho return () -> { ... } Saiba que esta é a forma de criar Lambdas, recurso disponível a partir do Java 8. Você pode aprender mais sobre as novidades do Java 8 no curso aqui na Alura: https://cursos.alura.com.br/course/java8-lambdas

No fim, o lambda fará o retorno da execução do trecho dentro deste. Neste caso é o único papel dele. Isso evita que eu use vários return dentro do código.

Mas há muito mais sobre Lambda para se aprender.

Sua dúvida se resume a isso? O Lambda? Caso tenha algo mais, por favor, nos retorne.

Revisarei o código na aula, aparentemente ficou confuso. Obrigado pelo retorno e bons estudos.

era sobre o lambda mesmo! obrigado!